工作需要,需要用JSTL将从数据库取出的多行文本中的 /n 替换成 <br />。
一、将取出的多行文本放在<pre></pre>标签里
优点:简单,用HTML解决了问题
缺点:pre 好象不认CSS样式,这个标签尽忠职守地“保持原样”,连CSS也不认了,这个缺点是致命的
二、纯JSTL方式 <c:out value="${fn:replace(content, '/n', '<br />')}" />
一运行,会抛出N多错误。
三、JSTL + JSP scriptlet
<%
request.setAttribute("x_n", "/n");
%>
<c:out value="${fn:replace(content, x_n, '<br />')}" />
优点:简单,易懂,修改方便
缺点:引用了JSP scriptlet,对于有“洁癖”的程序员是不能容忍的;代码较多。
四、JSTL + JavaBean
也无新意,不过这样一写,scriptlet没有了,不过修改的话要修改类文件了。
五、使用监听器
优点:在应用初始化时在application作用域中将 /n 作为一个attribute,代码少,节约资源
缺点:需要配置XML,修改时需要在类中修改。
六、使用自定义标签
自定义一个db2html标签,<c:out value="${fnx:db2html(content)}" />
优点:使用简单,
缺点:配置较多。麻烦。
本文探讨了在JSP中使用JSTL处理从数据库获取的多行文本,实现将/n字符替换为HTML的<br/>标签的方法。讨论了多种方案,包括直接使用HTML、纯JSTL方式、结合JSP scriptlet、利用JavaBean、监听器以及自定义标签等。
1797

被折叠的 条评论
为什么被折叠?



