首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

struts2 url 传值收不到,由过滤器引起,但小弟我不知道为什么

2012-01-23 
struts2 url 传值收不到,由过滤器引起,但我不知道为什么这是url:newsSaveOrUpdate.action?opsave&id9act

struts2 url 传值收不到,由过滤器引起,但我不知道为什么
这是url:
newsSaveOrUpdate.action?op=save&id=9
action 里面有op和id的get.set方法
在页面上得到op 和id的值都是空
通过调试发现只调用了get方法,set方法没被调用


找了好久,发现是过滤器引起的,删了过滤器配置就可以

XML code
<interceptors>            <!-- 定义结果转发拦截器 -->            <interceptor name="opResult" class="util.web.OpResultInterceptor">            </interceptor>            <!-- 定义默认拦截器 -->                    </interceptors>    <default-interceptor-ref name="opResult" />


过滤器的内容
Java code
@Override    public String intercept(final ActionInvocation arg0) throws Exception {        final String methodName = arg0.getProxy().getMethod();        final Class actionClass = arg0.getAction().getClass();        System.out.println(methodName);        final Method method = actionClass.getMethod(methodName);        [del]if (method.getAnnotation(OpResultToResultPage.class) != null) {            // System.out.println("in");            final OpResultBean opResultBean = new OpResultBean();            final HttpServletRequest request = (HttpServletRequest) arg0                    .getInvocationContext().get(StrutsStatics.HTTP_REQUEST);            final String Page1 = request.getHeader("Referer");            opResultBean.setReferer(Page1);            LocaleThreadTool.set("opResult", opResultBean);            final String actionResultString = arg0.invoke();            if (ObjectUtils.isEmpty(opResultBean.getResult())) {                opResultBean.setResult(actionResultString);            }            return "result";        }[/del]        return arg0.invoke();    }



tell me why!!!不明白,怎么解决

[解决办法]
传值收不到。因为你的拦截器配置问题。应该引用struts2默认拦截器

<interceptors>
<!-- 定义结果转发拦截器 -->
<interceptor name="opResult" class="util.web.OpResultInterceptor">
</interceptor>
<!-- 定义默认拦截器 -->
<interceptor-stack name="myStack">
<interceptor-ref name="opResult" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />

热点排行