第七章 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>

评论