在使用Struts2进行应用开发中经常碰到一些小问题,记录在这里自己备忘,同时留给需要帮助的人
1. According to TLD, tag s:property must be empty, but is not;
在使用 <s:property value="xxx"/> 标签时出现,问题原因是标签使用的时候结尾未正确关闭,缺少 /> 自己检查一下吧
2. <s:hidden> 标签的使用注意
常见习惯是 <s:hidden name="paramName" value="paramValue"/> 这里value中的paramValue通常理解和<s:property value="..."/>中的标签类似,直接取Action中的属性;
但要注意,这里还真不一样,按这种方法写,value只能是String类型的 paramValue;而不是paramValue的真实值
解决办法
<s:hidden name="paramName" value="%{paramValue}"/>
3. %{}的使用
%{}中强制写OGNL表达式
%{value1} = <s:property value="value1"/>
好像还可以强制调用Action中的方法?
注意;%{}只能在Struts2标签内使用,不是页面中任意位置写都可以的
4. 使用富文本编辑器编辑的内容显示效果缺少渲染效果
问题说的有点麻烦,简单理解就是使用UEditor或者KindEidor这类的具有丰富功能的富文本编辑器编辑的内容,在回显的时候会编程“原始”格式,即 <strong>TEST</strong><p>abc</p>.....缺少渲染效果
解决办法:
原来是<s:property value="xxx"/>在显示带有html标签关键字的特殊内容时,自动将标签关键字转义强制显示,
增加一个 escape="false" 属性,改为<s:property value="xxx" escape="false"/> 即可