You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP中如何实现PHP的nl2br()函数类似功能?

在JSP中实现类似PHP nl2br()的功能

嘿,这个需求在JSP开发里挺常见的,我给你分享几种实用的实现方式:

  • 使用JSTL函数(最推荐)
    这是JSP里最规范的做法,首先确保你已经引入了JSTL的核心标签库:

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    

    然后用fn:replace来替换换行符:

    <!-- 处理\n格式的换行 -->
    ${fn:replace(yourTextVariable, '\n', '<br/>')}
    
    <!-- 兼容Windows系统的\r\n换行,可以嵌套替换覆盖两种情况 -->
    ${fn:replace(fn:replace(yourTextVariable, '\r\n', '<br/>'), '\n', '<br/>')}
    

    要是担心文本里有HTML特殊字符导致XSS问题,可以先转义再替换:

    ${fn:replace(fn:escapeXml(yourTextVariable), '\n', '<br/>')}
    
  • 直接用Java脚本(不推荐,维护性差)
    如果你暂时没法用JSTL,也可以在JSP里直接写Java代码处理,但这种方式现在已经不提倡了,因为会让JSP代码变得杂乱:

    <%
        String text = "你的带换行的字符串内容";
        String convertedText = text.replace("\r\n", "<br/>").replace("\n", "<br/>");
    %>
    <%= convertedText %>
    
  • 自定义EL函数(适合频繁使用的场景)
    如果你的项目里经常需要这个功能,可以自定义一个EL函数,方便全局统一调用:

    1. 先写一个Java工具类:
      public class StringUtils {
          public static String nl2br(String text) {
              if (text == null) return "";
              // 同时处理两种换行格式
              return text.replace("\r\n", "<br/>").replace("\n", "<br/>");
          }
      }
      
    2. 在WEB-INF下创建一个TLD文件(比如custom.tld),配置函数:
      <?xml version="1.0" encoding="UTF-8"?>
      <taglib xmlns="http://java.sun.com/xml/ns/javaee" version="2.1">
          <tlib-version>1.0</tlib-version>
          <short-name>custom</short-name>
          <uri>http://your-project-domain.com/custom-tags</uri>
          <function>
              <name>nl2br</name>
              <function-class>com.your-package.StringUtils</function-class>
              <function-signature>java.lang.String nl2br(java.lang.String)</function-signature>
          </function>
      </taglib>
      
    3. 在JSP里引入自定义标签库,然后调用:
      <%@ taglib prefix="custom" uri="http://your-project-domain.com/custom-tags" %>
      ${custom:nl2br(yourTextVariable)}
      

内容的提问来源于stack exchange,提问作者Bhagawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:43