我正在尝试通过 jsp 文件打印字符串变量,这是我的代码:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*;"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>why are you not working</title>
<meta charset="utf-8" />
</head>
<body>
<%
String test = "<b><u>bold and underlined</u></b>";
%>
<c:set var="test1" value="<u>underlined</u>" />
<c:set var="test2" value="${test}" />
<c:out value="${test}" escapeXml="false" />
<c:out value="${test1}" escapeXml="false" />
<c:out value="${test2}" escapeXml="false" />
</body>
</html>
output:
有没有办法打印test or test2使用 JSTL ?正如您在上面的代码中看到的,我已经成功打印了变量 test1,但页面上没有出现变量 test 或 test2 的任何内容。
PS:为什么我要使用JSTL?因为它提供了一种评估 html 标签而不是转义它们的方法
是的,有。你可以设置你的变量test
in page
使用范围页面上下文 object.
<body>
<%
String test = "<b><u>bold and underlined</u></b>";
pageContext.setAttribute("test", test);
%>
<c:set var="test1" value="<u>underlined</u>" />
<c:set var="test2" value="${test}" />
<c:out value="${test}" escapeXml="false" />
<c:out value="${test1}" escapeXml="false" />
<c:out value="${test2}" escapeXml="false" />
</body>
Output
粗体和下划线 下划线 粗体和下划线
JSTL
完全适用于作用域变量,其中作用域可以是request
,session
or page
.默认范围是page
。
而scriplet是原始java,它被插入到JSP页面的servlet的服务方法中。
所以如果你想访问 JSTL 中的任何 scriplet 变量,你需要在范围内设置。
See Also
- 我可以将变量从 JSP scriptlet 传递到 JSTL,但不能从 JSTL 传递
到没有错误的 JSP scriptlet
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)