第七章 Jsp表达式语言
什么是jsp表达式语言:
Jsp用于在网页上显示动态的内容。通常需要在Jsp页面中嵌入Java脚本以
完成复杂的功能。但是大量的Java脚本使得Jsp页面难以维护。Jsp表达式语言(Expression language)
可用于在Jsp页面上生成动态的内容,并代替jsp脚本元素,以一种更简洁方式来
显示内容。Jsp表达式语言是从Jsp2.0规范开始支持的
什么要使用Jsp表达式语言:可以更加简洁的实现下面的三个功能
1)简洁访问存储对像(PageContext,Request,Session,Application)里面的值
2)利用EL简洁访问从表单元素取过来的值取替request.getParameter方法
3)JavaBean属性的简略记法
Jsp表达式语言(EL)的格式:
${表达式}
如何利用EL简洁访问存储对像的值
A:先对比。
页面1.jsp中
<%
session.setAttribute("Uid","chen");
%>
<jsp:forward page="jsp2.jsp"/>
页面2.jsp接受来自于1.jsp中的值
<%
String Uid="";
if (session.getAttribute("Uid")!=null)
{
Uid=session.getAttribute("Uid").toString();
}
%>
<h1>接受的值为<%=Uid%>
利用EL进行改进2.jsp页面
<h1>接受的值为${Uid}</h1>
结论:
1:通过EL访问非常简洁
2:如果值不存在,EL返回值不是NUll而是空字符串
3:如果四种对像都有相同名字的属性,
则在能够访问的范围(注意)内查找的顺序为PageContext,Request,Session,Application
找到第一个为止。也就是说如果此时能够访问PageContext,Request,Session,Application。则EL的值为PageContext的值。
如果能够访问的范围为Request,Session,Application则EL的值为Request等等
4:可以通过${session|Request|Application|Scope.Uid}的形式来决定要取到什么范围的值
举例:登录的例子,如果登录正确,则显示欢迎信息
如何利用EL简洁访问从表单元素取过来的值用以取替request.getParameter方法
格式:${param.表单元素值} 注意表单元素值必须要有name属性
1.jsp1页面:输入学号,语文,数学,化学
2.jsp2页面:显示该学生的总分与平均分
改进:把显示的结果也放入jsp1页面中,能够达到保留表单元素值的目的
学号:<input type="text" name="txtId" value="${param.txtId}"/><br>
说明:
1)通过${param.表单元素名}取过来的值。默认为String类型,可以通过
${param.表单元素名+0} 转换成为数值型
比如:比较两个数的大小
${param.num1+0>param.num2+0} 而不能写成${param.num1>param2.num1}
其中num1与num2是表单元素。"10""<4" 而10>4
如何利用EL对JavaBean属性进行简略记法
格式1:${BeanName.BeanProperty}
格式2:${BeanName["BeanProperty"]
jsp1页面:输入商品名,数量,单价,实付款
jsp2页面:通过一个ShopBean求出实付款和找零
不使用EL表达式:
商品名:<jsp:getProperty name="ShopBean" property="shopname"/><br>
数量: <jsp:getProperty name="ShopBean" property="amount"/><br>
使用EL表达式:
商品名:${ShopBean.shopname}<br>
数量: ${ShopBean.amount}<br>
评论