2015-11-30 23:40:21,175 [ERROR] [com.opensymphony.xwork2.interceptor.ParametersInterceptor] - Developer Notification (set struts.devMode to false to disable this message):
出现上面的问题。首先应该确认是你打开了开发者模式,虽然你关闭开发者后不会出现这条信息,但是这条错误信息却很重要。
他告诉我们action中的参数并没有被正确的获取到,或者拦截器似乎出了点什么问题
我们再看看提示错误的类
com.opensymphony.xwork2.interceptor.ParametersIntercepto
不难发现,原来是拦截器的问题。
自此,问题解决,因为我自定了一个拦截器,所以需要在自定义拦截器下面增加一个默认的拦截器
否则,action不能正确的获取到信息
默认拦截器 <interceptor-ref name="defaultStack" />
这个问题是昨天的,本意味问题解决了,也就匆匆睡觉了,尽早起来才发现加入默认拦截器后,action仍然是没有获取到前台的值的
这时我发现我的自定义拦截器居然返回的页面是非post页面,也就是说我的自定义拦截器是拦截非post请求的
如果请求是非post就返回到一个页面,是post请求就执行下一个拦截器,然后我写了两个输出语句加以确认,代码如下:
public String intercept(ActionInvocation arg0) throws Exception { String method = ServletActionContext.getRequest().getMethod(); if(method.equalsIgnoreCase("POST")){ System.out.println("起左右了吗"); return arg0.invoke(); } System.out.println("起左右了吗暗暗啊"); return "login404"; }发现打印的结果居然是:“起左右了吗暗暗啊”。
自此问题明朗,原来我的请求是非post请求,我自己的拦截器把我的请求给拦截了
再继续发掘,原来是ajax没有添加type:post属性
type:"post",我给我自己下了个套。哈哈
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情