您的位置:首页 > 编程语言 > Java开发

struts2使用 displaytag 分页异常的处理

2011-07-09 13:18 267 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐