今天用struts2做了一个小例子,结果发现个问题
action代码如下
private String table; public String execute(){ setName("peter"); setTable("<tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr><tr><td>1232312321312</td></tr>"); return SUCCESS; } public String getTable() { return table; } public void setTable(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>
原因未知,但问题解决了~~~~