如何在JSP页面输出HTML文本而不被转义?

对象的内容

news.content="<table><tr><td>哈哈</td></tr></table>"

在jsp中取对象

 <div>   
${news.content}
</div>

实际效果:

 <div>
&lt;table&gt;&lt;tr&gt;&lt;td&gt;哈哈&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</div>

但是我想要的结果是:

 <div>
<table><tr><td>哈哈</td></tr></table>
</div>

如何做?

那你直接获取对应标签的text不就行了;

为什么要在对象里放标签?你把标签放到对象里肯定会当成对象的一部分来解析

如果这个格式比较固定,你可以获取td中内容

好像这个问题没有说清楚吧?所谓的值,对象是哪里来的?

你前台是不是用了什么文字编辑的插件,导致存储内容的时候自动添加了table相关标签,这样如果你是从库里取值直接转成了对象的话,${news.content}
取的是完全的数据存的内容,建议你跟踪下news对象里面的值,看看table标签是怎么加上去的

你的${news.content}内容取出来的时候就将<>替换为对应的实体了吧,或者入库的时候做了替换,自己检查下数据库。再实体对象替换回<>

取出来的对象有问题吧,加断点调试一下

1、用c标签库:< c:out value="${ news.content } " escapeXml="false" />
2、用s标签库:< s:property value="${ news.content }" escape="false">
3、用jQuery:给这个div一个id为div1,则$("#div1").html(${news.content});以html文本写入即可
4、vue方式:< div v-html="${news.content}"></ div>

犯得上地方士大夫大师傅