当我使用Struts 2通配符配置时如何返回404错误?

我正在使用struts 2构建一个网站。 这是我的“struts.xml”的剪辑:

 /Pages/myresult.jsp   

现在,我遇到了一个问题。
当我访问我没有设计的动作时,例如“aaabbb”,服务器将返回500错误。
由于通配符配置,struts 2将尝试调用类“com.domain.actions.UserAction”的“aaabbb”方法,但“aaabbb”方法不存在。
但是,从逻辑上讲,返回404错误更好。
如何在这些情况下返回404错误并同时使用通配符配置?

我不是Struts2专家,但你可以试试这个:

    

然后有一个返回404的“错误”操作。

在Struts 2中,如果方法属性值不存在,则调用execute()方法。

这意味着您可以在execute方法中返回自定义结果值,如下所示:

 public String execute() throws Exception { // if the method * does not exist, we will return a "404ERROR" result return "404ERROR"; } 

然后在struts.xml映射中,您可以创建一个类型为“httpheader”的结果类型,如下所示:

  /Pages/myresult.jsp   404 This is a 404 error. Method does not exist   

这将在标题上调用404。 这将使用户接受您在web.xml中可能具有的任何错误映射,如下所示:

  404 /error404.html  

另一个会返回404的想法。(这是我唯一一个有效的方法)

 public String execute() { ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_NOT_FOUND); return SUCCESS; }