在JSP页面中,有两种常用的便捷取值方式:
<%= %>
${ }
示例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<!--1. 用set存值,set是存到JSP的四个域对象中去,默认的范围是page-->
<c:set var="num" value="123.456" scope="session"/>
<fmt:formatNumber value="${num}" maxFractionDigits="2"/><br>
<!--2. 在JSP声明语句和JSP代码段里定义一个字符变量-->
<%! String num1="345.734";%>
<% String num2="578.456"; %>
<fmt:formatNumber value="<%=num1%>" maxFractionDigits="2"/><br>
<fmt:formatNumber value="<%=num2%>" maxFractionDigits="2"/><br>
<!--3. 在request域里存入一个属性值-->
<%
request.setAttribute("num3","132.576");
%>
<fmt:formatNumber value="${num3}" maxFractionDigits="2"/><br>
</body>
</html>
在上面案例中1和3只能用${ }接收值,2只能用<%= %>接收。
- 1和3本质一样,都是存值到JSP域里(即JSP页面里),而<%= %>是将数据输出到客户端页面,它只能获取到<%%>或<%! %>里定义的变量,所以1和3不能用<%= %>接收。
- 2是把定义在Java代码里,所以只能用<%= %>接收,${ }接收不到。