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

JSP使用JSTL在textarea输出值出现空白空格问题如何解决

JSP JSTL textarea动态内容不渲染修复方案

核心原因

该空白问题通常由以下几个原因导致:

  • 未正确引入JSTL核心标签库,<c:choose>、<c:out>等标签未被容器解析
  • EL表达式解析被禁用,${}包裹的变量没有被正确取值
  • 变量作用域不匹配,后端存入的变量和前端读取的作用域不一致,导致取值为空
  • 额外拼写错误:分支里的Everning应为Evening

修复步骤

  1. 首先在JSP页面顶部添加JSTL核心标签库引入指令,确保标签能被正常解析:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  1. 确认EL表达式功能开启,在JSP的page指令中添加属性禁用EL忽略,避免低版本web容器默认关闭EL解析:
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
  1. 明确指定变量的作用域,避免容器按默认顺序查找不到对应值:
    • 若CTSSessionCode存在Session域,用${sessionScope.CTSSessionCode}读取
    • 若requestDate存在Request域,用${requestScope.requestDate}读取
  2. 精简textarea内的空白字符,textarea会保留所有换行、缩进,多余空白会导致最终输出格式混乱,可将内容拼接紧凑避免多余空格。

修复后完整代码

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>

<tr>
    <th scope="row">SMS Before Inst</th>
    <td colspan="7">
        <textarea cols="20" rows="5" placeholder="SMS Content" id="smsMessage" name="smsMessage">Time setting is <c:choose><c:when test="${sessionScope.CTSSessionCode=='M'}">Morning</c:when><c:when test="${sessionScope.CTSSessionCode=='E'}">Evening</c:when><c:otherwise>OTHER</c:otherwise></c:choose> Date <c:out value="${requestScope.requestDate}"></c:out>,We will contact later</textarea>
    </td>
</tr>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:39:03