Error setting expression '.css' with value

来源:互联网 发布:类似于格来云的软件 编辑:程序博客网 时间:2024/06/08 07:12

最近出现一个奇怪的问题,就是当点击一个页面的时候,同一个action调用了两次,导致页面没有任何响应。

报错信息如下:

 WARN 2011-06-10 11:49:54,781 com.opensymphony.xwork2.util.logging.commons.CommonsLogger: Error setting expression '.css' with value '[Ljava.lang.String;@17cd18d'
ognl.ExpressionSyntaxException: Malformed OGNL expression: .css [ognl.ParseException: Encountered " "." ". "" at line 1, column 1.
Was expecting one of:
    ":" ...
    "not" ...
    "+" ...
    "-" ...
    "~" ...
    "!" ...
    "(" ...
    "true" ...
    "false" ...
    "null" ...
    "#this" ...
    "#root" ...
    "#" ...
    "[" ...
    "{" ...
    "@" ...
    "new" ...
    <IDENT> ...
    <DYNAMIC_SUBSCRIPT> ...
    "/'" ...
    "`" ...
    "/"" ...
    <INT_LITERAL> ...
    <FLT_LITERAL> ...
    ]
 at ognl.Ognl.parseExpression(Ognl.java:112)
 at com.opensymphony.xwork2.ognl.OgnlUtil.compile(OgnlUtil.java:214)
 at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:149)

 

发现出现了一个变量名称为.css的,但是我们在调用的时候,并没有传此参数。

最后发现在一个js文件里,有这样一行代码:

 

function AddCss(){
var l=CreateEl("link");
l.setAttribute("type","text/css");
l.setAttribute("rel","stylesheet");
l.setAttribute("href","?.css");
l.setAttribute("media","screen");
document.getElementsByTagName("head")[0].appendChild(l);
}

注意第5行,设置href的时候,值为?.css。

这个在页面的显示html如下:

<link rel="stylesheet" type="text/css" href="?.css" media="screen"/>

 

在action给前台传输数据时,这时会把?后面的.css作为变量名称再次调用一次action,因为后台没有.css对应的set/get方法,并且.css也不符合java变量定义的语法所以报错。

将这行代码注释点后,就正常运行了。

原创粉丝点击