现在的位置: 首页 > 综合 > 正文

struts2使用 displaytag 分页异常的处理

2018年05月22日 ⁄ 综合 ⁄ 共 1074字 ⁄ 字号 评论关闭

displaytag翻页 异常ognl.InappropriateExpressionException: Inappropriate OGNL expression: (d - 443618) - p

 

异常的原因是因为在翻页时传递的参数名不规范,使用了减号

(如:http://localhost:8080/HRMS2.0/getDepartments.action?d-443618-p=1)

而这个参数在提交时,strust2中的 ParametersInterceptor拦截器会对提交的参数进行验证,验证时使用的是正则表达式,原代码如下:

    private String acceptedParamNames = "[[//p{Graph}//s]&&[^,#:=]]*";
    private Pattern acceptedPattern = Pattern.compile(acceptedParamNames);
   而定义的正则表达式中不支持减号(-),所以才出现下面异常。

解决方法:

 

<package name="default" extends="struts-default">
  <interceptors>
          <interceptor-stack name="defaultStack"><!-- 配置一个拦截器-->
              <interceptor-ref name="staticParams" />
              <interceptor-ref name="params">
                  <param name="excludeParams">dojo..*,d-..*</param><!-- 支持建号变量名 -->
              </interceptor-ref>
           </interceptor-stack>  
     </interceptors>
  <default-interceptor-ref name="defaultStack"/>
  <action name="sysProcess" class="org.zzzy.erp.web.action.SysAction" method="{1}">
   <result name="success">/${target}.jsp</result>
   <result name="list" type="redirectAction">sysUser_toList</result>
  </action>

</package>

抱歉!评论已关闭.