关于jsp中换行问题

本文探讨了在JSP中如何处理数据库中的换行符' ',将其转换为HTML的换行<br>。重点介绍了<c:out>标签的escapeXml属性,当设置为false时,可以防止 '<' 和 '>' 被转义,允许正确显示换行。示例代码展示了在用户登录前后如何使用<c:out>标签来显示内容,强调了在生成HTML或XML内容时避免转义问题的重要性。

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

数据库里换行为‘\r\n’,而在页面中要转换为<br>。在页面显示的时候要注意EL标签<c:out>的一个属性。 escapeXml=="false"

默认属性为true,会把‘<’和>’解析为&lt;和 &gt;,在页面上则显示为<br>而并不是换行。

 

相关内容如下:

 

清单 13. <c:out> 操作的语法

<c:out value="expression" default="expression" escapeXml="boolean"/>

 

escapeXml 属性也是可选的。它控制当用 <c:out> 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 &lt;&gt;&amp;)。

例如,假定有一个名为 user 的会话作用域变量,它是一个类的实例,该类为用户定义了两个特性:usernamecompany。每当用户访问站点时,这个对象被自动分配给会话,但直到用户实际登录后,才会设置这两个特性。假定是这种方案,请考虑清单 14 中的 JSP 片段。在用户登录之后,这个片段将显示单词“Hello”,其后是他/她的用户名和一个惊叹号。但是,在用户登录之前,由这个片段生成的内容则是短语“Hello Guest!”。在这种情况下,因为 username 特性还有待初始化,所以 <c:out> 标记将转而打印出 default 属性的值(即字符串“Guest”)。
清单 14. 带缺省内容的 <c:out> 操作示例

Hello <c:out value="${user.username}" default=="Guest"/>!

 

接下来,考虑清单 15,它使用了 <c:out> 标记的 escapeXml 属性。如果在这种情况下已经将 company 特性设置成 Java String"Flynn & Sons",那么,实际上该操作生成的内容将是 Flynn & Sons。如果这个操作是生成 HTML 或 XML 内容的 JSP 页面的一部分,那么,这个字符串中间的“&”符号最终可能被解释为 HTML 或 XML 控制字符,从而妨碍了对该内容的显示或解析。但是,如果将 escapeXml 属性值设置成 true,则所生成的内容将是 Flynn &amp; Sons。浏览器或解析器不会因在解释时遇到这种内容而出问题。假定 HTML 和 XML 是 JSP 应用程序中最常见的内容类型,所以 escapeXml 属性的缺省值是 true 就不足为奇了。


清单 15. 禁用转义的 <c:out> 操作示例

<c:out value="${user.company}" escapeXml=="false"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值