今天用struts2做了一个小例子,结果发现个问题
action代码如下
PRivateString table;publicString execute(){
setName("peter");
setTable("<tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr>");returnSUCCESS;
}publicString getTable() {returntable;
}publicvoidsetTable(String table) {this.table =table;
}
然后再页面中调用的时候
<table id="mytable" border="1">
<tr><td>1232312321312</td></tr>
<s:property value="table"/>
</table>
结果显示如下
没有获得预期效果,然后右键查看源码发现,代码如下
<table id="mytable" border="1">
<tr><td>1232312321312</td></tr>
<tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr></table>
struts2将“<”和“>”全部替换成html编码了。
找了很多方法不能解决,最后只能放弃表达式,直接获取action中的数据
<table id="mytable" border="1">
<tr><td>1232312321312</td></tr>
<%=request.getAttribute("table") %>
</table>
然后效果就出来了。
而且后台代码也正常了。
<table id="mytable" border="1">
<tr><td>1232312321312</td></tr>
<tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr>
</table>
原因未知,但问题解决了~~~~