你的位置:首页 > Java教程

[Java教程]struts2特殊符号替换


  今天用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>   &lt;tr&gt;&lt;td&gt;1232312321312&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1232312321312&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1232312321312&lt;/td&gt;&lt;/tr&gt; </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>

  原因未知,但问题解决了~~~~