今天用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>
原因未知,但问题解决了~~~~