JSP使用JSTL在textarea输出值出现空白空格问题如何解决
JSP JSTL textarea动态内容不渲染修复方案
核心原因
该空白问题通常由以下几个原因导致:
- 未正确引入JSTL核心标签库,
<c:choose>、<c:out>等标签未被容器解析 - EL表达式解析被禁用,
${}包裹的变量没有被正确取值 - 变量作用域不匹配,后端存入的变量和前端读取的作用域不一致,导致取值为空
- 额外拼写错误:分支里的
Everning应为Evening
修复步骤
- 首先在JSP页面顶部添加JSTL核心标签库引入指令,确保标签能被正常解析:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- 确认EL表达式功能开启,在JSP的page指令中添加属性禁用EL忽略,避免低版本web容器默认关闭EL解析:
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
- 明确指定变量的作用域,避免容器按默认顺序查找不到对应值:
- 若
CTSSessionCode存在Session域,用${sessionScope.CTSSessionCode}读取 - 若
requestDate存在Request域,用${requestScope.requestDate}读取
- 若
- 精简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
相关产品推荐
相关产品推荐

