Freemarker使用Struts2的select标签的时候ognl表达式问题
使用Freemarker,发现个问题。
<@s.select name="myName" list="#{"1":"Type1", "2":"Type2"}" />
这样的代码抛出异常,解析错误。
?
仔细查了一下google,只找到两篇帖子讲明白了这么回事。首先#{}是个freemarker的语法,所以不能用在这里。
可以:<@s.select name="myName" list=r"#{"1":"Type1", "2":"Type2"}" />
这个r让后面的字符串不解析,直接给tag。<@s.select name="myName" list={"1":"Type1", "2":"Type2"} />
但是这样会导致输出Key的toString方法,必须加上listKey="key" listValue="value"才能解决,也就是:
?
<@s.select name="myName" list={"1":"Type1", "2":"Type2"}?listKey="key" listValue="value"/>