在实际应用开发或者是产品部署的时候,对应着两种模式:
① 开发模式(devMode);此时 DevMode=ture;
② 产品模式(proMode);此时 DevMode=false;
在struts.properties或者struts.xml中有devMode的配置,在devMode被激活的模式下,能够明显的提高开发效率,它会提供更多的日志或着debug信息。当然提高开发效率,在性能方面会付出一定的代价。所以struts默认的是非开发模式。设置为开发模式之后:
1、每次请求都会重新加载资源文件,所以当对properties文件进行修改后,下一次请求是就能够反映相应的变化。
2、每次请求的时候也会重新加载xml配置文件、验证文件等,这样可以方便调试或者修改相应的配置文件,而不用重新部署重启web服务器。
到2.3.4.1好像检查严格了,开发模式下任何参数有提交但是没有对应set方法时候都会有提示。
比如我这里前台ajax获取dept,后台HomeAction没有写get和set方法,控制台就报错,打印出如下语句:
19:32:48,207 ERROR [http-nio-8888-exec-29] ParametersInterceptor:34 - Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'dept' on 'class cn.xyf.home.action.HomeAction: Error setting expression 'dept' with value ['部门B', ]
而当我为dept加上get和set方法后,报错就消失了。另外一种解决方法是把DevMode=false,但我觉得这样不好.