本帖最后由 lihaigai9 于 2010-01-27 02:03:49 编辑

解决方案 »

  1.   

    上次代码太多了,去掉下面这一段,这一段是不可能跑到的
      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";
            }剩下只有下面这一段@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);
            
            return arg0.invoke();
        }
    兄弟姐妹们快来帮忙咯
      

  2.   

    参数丢失只有2个可能
    1 属性被覆盖了
    2 get时,在内不转发时被丢失了,比如
    url?a=b&c=d
    转发后只有 url,没有处理后面的参数
      

  3.   

    传值收不到。因为你的拦截器配置问题。应该引用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" />
      

  4.   

    我觉得,像LZ这样写在url后面的参数没必要用get,set方法获取在页面用request.getParameter();获取不是更简单吗