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>

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

原文地址:https://www.cnblogs.com/xiufengd/p/4876565.html