如何在struts2中删除重复的结果体

时间:2016-12-20 15:25:37

标签: configuration struts2

我有一个全局结果,向用户返回404错误。 我也有一个默认动作,我想做同样的事情。

我希望我的成功结果是默认操作,以扩展我的全局ar结果,但我不知道如何。我错过了什么吗?

ar

1 个答案:

答案 0 :(得分:1)

正如@Aleksandr M@Roman C在评论中所述,我想要的是不可能的。在发布问题后,我意识到我想要记录默认操作,所以我最后写了一个类。

@org.apache.struts2.convention.annotation.Action("notfound")
public class DefaultAction implements Action, ServletRequestAware
{
private static Logger logger = LogManager.getLogger(DefaultAction.class);
private HttpServletRequest request;

@Override
public String execute() throws Exception
{
    logger.warn("Unknown target "+request.getRequestURI());
    return "securityerror";
}

@Override
public void setServletRequest(HttpServletRequest req)
{
    this.request = req;
}
}

struts.xml中

    <default-action-ref name="notfound" />

    <global-results>
        <result name="intLogin" type="redirect">${#request.loginUrl}</result>
        <result name="input" type="tiles">user</result>
        <result name="securityerror" type="httpheader">
           <param name="error">404</param>
           <param name="errorMessage">Oh No You Didn't</param>
        </result>
    </global-results>

    <global-exception-mappings>
        <exception-mapping exception="com.me.s2ui.AccessException" result="securityerror" />
    </global-exception-mappings>