JSP EL表达式 与输入有关的内置对象

与输入有关的隐含对象有两个param和paramValues,用来取得用户的请求参数。在使用EL之前可以使用如下代码取得用户的请求参数:

request.getParameter(String name);

request.getParameterValues(name);

param接收的参数只有一个值,而如果参数有几个值,就必须使用paramValues来接收参数。

结合EL内置对象和EL算术表达式做一个简单的计算器程序。

首先CalculatorForm.jsp,包含了两个文本框用于输入数字,一个下拉框用来选择运算符。(论HTML中下拉框的使用方法)

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"    import="java.util.*" %>
 3 <%@ page import="java.sql.*" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8 <title>简单计算器</title>
 9 </head>
10 <body>
11 <center>
12     <h1>简单计算器</h1>
13     <hr>
14     <form action="CalculateoDemo.jsp" method="post">
15         <input type="text" name="number1"/>
16         <select name="ope">
17             <option value="add">+</option>
18             <option value="minus">-</option>
19             <option value="multiply">*</option>
20             <option value="divide">/</option>
21         </select>
22         <input type="text" name="number2"/>
23         <input type="submit" name="计算"/>
24         <input type="reset" name="重置"/>
25     </form>
26 </center>
27 </body>
28 </html>

然后新建一个CalculatorDemo.jsp页面来接收参数,其中<c:if>为流程控制标签。代码如下:

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"    import="java.util.*"%>
 3 <%@ page import="java.sql.*" %>
 4 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 9 <title>简单计算器</title>
10 </head>
11 <body>
12 <center>
13     <h1>简单计算器</h1>
14     <hr>
15     <c:if test="${param.ope=='add' }">
16         ${param.number1 }+${param.number2 }=${param.number1+param.number2}
17     </c:if>
18     <c:if test="${param.ope=='minus' }">
19         ${param.number1 }-${param.number2 }=${param.number1-param.number2}
20     </c:if>
21     <c:if test="${param.ope=='multiply' }">
22         ${param.number1 }*${param.number2 }=${param.number1*param.number2}
23     </c:if>
24     <c:if test="${param.ope=='divide' }">
25         ${param.number1 }/${param.number2 }=${param.number1/param.number2}
26     </c:if>
27 </center>
28 </body>
29 </html>

值得注意的是:
${param.number1}等价于request.getParameter("name"),这两种方法都可以用于服务器从页面或客户端获取内容。

${param.name} 请求参数也就是表单里的数据或者url的参数
则对应取为 request.getParam("name")


而 request.getAttribute("name")
对应取的EL表达试 为
${requestScope.name};

原文地址:https://www.cnblogs.com/xingzhui/p/5745544.html