[笔记] 传智播客-javaWeb笔记(7)

来源:互联网 发布:亚航激活链接无网络 编辑:程序博客网 时间:2024/05/18 00:27
第七章 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>
原创粉丝点击