最近接手的项目,客户建议使用struts2+ajax框架实现。设计过程中自己的一些想法。
struts2中使用google的json插件可以轻松实现ajax功能。因为系统整体采用了ajax请求的方式。后台的异常无法直接返回给前台进行处
理。
想法1:对于后台的每个action需要实现捕
获异常并转换为前台可以展现的消息形式。即将异常消息赋值为errMsg属性。前台解析json,获取errMsg属性的值可以知道系统是否异常。
try{
//业务逻辑代码
........
}catch(Exception e){
this.setErrMsg(e.message);
}
前台解析json,获取errMsg属性的值可以知道系统是否异常。前台代码形式为:判断异常情况并跳转至提示页面。
if(!msg.errMsg){
window.location.href="error.htm?errMsg="+msg.errMsg;
}
想法2:对于session失效的处理,应该在拦截器中进行。为了统一处理所有的action,即需要设计一个BaseAction作为所有业务Action的基类。当session失效的时候,BaseAction中的setErrMsg方法实现对业务Action中errMsg属性的赋值。