首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Confluence v5.8.5中使用xwork覆盖默认包

在Confluence v5.8.5中使用xwork覆盖默认包
EN

Stack Overflow用户
提问于 2015-08-11 05:18:46
回答 2查看 328关注 0票数 0

我需要覆盖登录操作的默认包。以前,我使用汇流传送插件覆盖操作,但无法通过版本控制问题进行重写。

不知何故,我是通过使用xwork来重写某些操作的,但没有了解如何覆盖默认包的任何操作。

这是我的密码。

代码语言:javascript
复制
<xwork name="XWork Create" key="xwork-create">

    <package name="default" extends="default">
        <interceptor-ref name="validatingStack"/>
        <action name="login" class="com.atlassian.confluence.user.actions.LoginAction" method="doDefault">
            <result name="input" type="velocity">/templates/plugin/login.vm</result>
        </action>
    </package>

    <package name="users" extends="default" namespace="/users">
        <default-interceptor-ref name="defaultStack" />
        <action name="viewmyprofile" class="in.atlassian.confluence.plugin.Login">
            <result name="success" type="velocity">/templates/plugin/login.vm</result>
        </action>
    </package>

</xwork>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 13:30:52

通过用“loginDefault”替换包名来实现.忘了回答。

票数 0
EN

Stack Overflow用户

发布于 2015-08-18 23:06:35

我将使用servlet过滤器覆盖默认行为。

代码语言:javascript
复制
<servlet-filter name="Login Filter" key="loginFilter"
                class="com.example.confluence.plugins.xxx.servlet.filter.LoginFilter"
                location="before-dispatch"
                weight="10000">

    <url-pattern>/login.action*</url-pattern>
    <url-pattern>/dologin.action*</url-pattern>

    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</servlet-filter>

然后使用com.example.confluence.plugins.xxx.servlet.filter.LoginFilter重定向到另一个servlet或xwork操作。

也许是这样的:

代码语言:javascript
复制
public class LoginFilter implements Filter
{
    public void init(FilterConfig config) {}

    public void doFilter(ServletRequest request,
                         ServletResponse response,
                         FilterChain filterChain) throws IOException, ServletException {
            try {
                ((HttpServletResponse)response).sendRedirect("/path/to/your.action");
            } catch (IOException e) {
                // log.error(" ++ Couldn't redirect: " + e.getMessage());
                filterChain.doFilter(request, response);
            }
    }

    public void destroy() {}
}

它的优点是不依赖传送带,我敢肯定它的作者大卫·彼得森( David )或ServiceRocket不再支持这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31933753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档