用SSH写一个论坛:后台传递至jsp页面的html文本无法正常显示

本文探讨了在使用Struts框架时如何正确地在JSP页面上回显HTML格式的文本,解决因默认转义导致的显示问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题分析:

        我们在编写论坛的过程中,如果用户编辑的是一个富文本的话,那么存储到数据库就可以是存储当前富文本的html文本。这个可以通过富文本插件的方法导出html文本或使用jQuery或js到处html文本。如果我们成功的将html文本存储到数据库中,希望将这一段html文本利用struts标签回显到jsp页面中,我们就会发现html文本以字符串的现实到页面中了。

例如:<h1 style="color:red;">测试文本</h1>

 

我们希望的效果应该是: 测试文本

但实际上现实出来的却是:<h1 style="color:red;">测试文本</h1>

 

问题原因:

这是因为我们利用struts标签回显一段html文本时,strust并不知道这是一段有格式的html文本,它会通配的识别为一段无格式的文本,这不是后台传递方式的原因,通过单步断点我们可以发现知道将一段html文本put到前端后struts标签解析时,html文本并没有发生改变。这一观点可以在试着将它回显的文本复制到编译器中,显示的效果会与预期相同。

 

解决方案:

<s:property value="变量名" escapehtml="true">

struts2之后,struts标签就没有eacape这个属性了,取而代之的是

escapeJavaScript
escapeHtml
escapeXm

这三个属性默认都是false的,设置为true就可以显示原生的标签了

如果我们要回显的是jsp格式文本,那么就设置 escapeJavaScript 为 true

如果要回显html格式文本,就设置 escapeHtml 为 true

其他同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值