[@APPNAME@] WARN [http-8080-1] OgnlValueStack.warn(49) | Error setting value
ognl.ExpressionSyntaxException: Malformed OGNL expression: 402880f6262a958001262a9bdd8a0003 [ognl.ParseException: Encountered "6262" at line 1, column 8.
Was expecting one of:
<EOF>
"," ...
"=" ...
"?" ...
"||" ...
"or" ...
"&&" ...
"and" ...
"|" ...
"bor" ...
"^" ...
"xor" ...
"&" ...
"band" ...
"==" ...
"eq" ...
"!=" ...
"neq" ...
"<" ...
"lt" ...
">" ...
"gt" ...
"<=" ...
"lte" ...
">=" ...
"gte" ...
"in" ...
"not" ...
"<<" ...
"shl" ...
">>" ...
"shr" ...
">>>" ...
"ushr" ...
"+" ...
"-" ...
"*" ...
"/" ...
"%" ...
"instanceof" ...
"." ...
"(" ...
"[" ...
<DYNAMIC_SUBSCRIPT> ...
]
at ognl.Ognl.parseExpression(Ognl.java:116)
at com.opensymphony.xwork2.ognl.OgnlUtil.compile(OgnlUtil.java:207)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:192)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:155)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:143)
......
网上有人给出的解决方法是:
打开log4j.properties 加入:
log4j.logger.com.opensymphony.xwork2=ERROR
其实这不是解决问题,而是一种逃避,因为这并没有认为是一种严重的ERROR,而只是定位于WARN警告级别。他这样做只是不让控制台报出这个错而已。
网速不行中午再说.....
时隔快两个月才来说,o(∩_∩)o...哈哈
终于找到当初所留下的笔记。
【我所遇到的原因】:
在前台页面传给后台的参数为:id=value
由于我要对一个表里的记录中的某一个字段设置一个值,所以刚开始我就传id1=value1&id2=value2...
402880f6262a958001262a9bdd8a0003=Release,但是按照变量命名规则这是不合法的。
【解决方法】:在id前加上一个前缀Tab_,即:Tab_402880f6262a958001262a9bdd8a0003=Release
在后台就可根据
//(从页面获取到的参数:name:Tab_+栏目分类ID号,value:Default(最新上传)/Release(已发布))
// 补充说明:name前加上“Tab_”前缀的原因是解决ONGL对name格式的要求,避免报错
String value = request.getParameter("Tab_"+obj.getId());
同时也需注意:表单中域使用了以数字开头的name值