struts2拦截器怎么改变参数值? 10
struts2的Action的每个方法都有可能抛出异常,如果每个方法都try-catch的话代码比较多,我想用truts2的拦截器统一处理。当抛出异常时,能改变resul...
struts2的Action的每个方法都有可能抛出异常,如果每个方法都try-catch的话代码比较多,我想用truts2的拦截器统一处理。当抛出异常时,能改变result和一个statusCode参数。
public String intercept(ActionInvocation invoke) {
String result = "";
try {
result = invoke.invoke();
} catch (Exception e) {
LogUtils.error(e);
HttpServletRequest request = ServletActionContext.getRequest();
if (isAjax(request)){
result = "ajax";
BaseAction baseAction = (BaseAction)invoke.getAction();
baseAction.setStatusCode(DWZConstants.statusCode_FAIL);
baseAction.setMessage("操作失败");
}else{
result = BaseAction.ERROR;
}
}
return result;
}
但是如果程序抛出异常,虽然执行了baseAction的设置,但是传到也面对额json值不是新改变的值。
我知道struts2有个这个映射,但是对已ajax的应用的话,体验就不好了,我想能修改或者添加那个statusCode的值来达到比较友好的提示。
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings> 展开
public String intercept(ActionInvocation invoke) {
String result = "";
try {
result = invoke.invoke();
} catch (Exception e) {
LogUtils.error(e);
HttpServletRequest request = ServletActionContext.getRequest();
if (isAjax(request)){
result = "ajax";
BaseAction baseAction = (BaseAction)invoke.getAction();
baseAction.setStatusCode(DWZConstants.statusCode_FAIL);
baseAction.setMessage("操作失败");
}else{
result = BaseAction.ERROR;
}
}
return result;
}
但是如果程序抛出异常,虽然执行了baseAction的设置,但是传到也面对额json值不是新改变的值。
我知道struts2有个这个映射,但是对已ajax的应用的话,体验就不好了,我想能修改或者添加那个statusCode的值来达到比较友好的提示。
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings> 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询