如果要想让表达式语言发挥出自己的主要作用,则必须首先考虑的是使用MVC设计模式,因为在MVC设计模式一个最主要的 好处就是让JSP中的代码越来越少了,而且已经规定了jsp之中只能出现三种代码: ·接受属性----学习完表达式后,属性输出的scriptlet将会在jsp中消失 ·判断语句----学习完标签(编写判断标签)后,该scriptlet将会消失 ·迭代输出----学习完标签(编写迭代标签)后,该scriptlet将会消失 但是,如果在开发之中有时候这一点是很难做到的,在实际的代码开发中已经讲解过了,一个JSP可定输出的 时候是接受VO对象的,则这个时候为了可以避免导入vo包,也只能通过表达式完成; 表达式语言: 表达式语言(Expression Language,简称EL)是在JSP2.0后增加的新功能,使用表达式语言,可以方便的 访问标志位(jSP中一共提供了四种标志位:page(pageContext)、request、session、application)中的 属性内容,这样可以避免掉许多的scriptlet代码,访问的简便语法如下: ·${属性名称} 四种标志位=四种属性范围,有四种属性范围存在的属性可以直接通过表达式语言访问。 表达式的基本作用: <%@ page contentType="text/html" pageEncoding="gbk"%> <html> <head><title>这是测试</title></head> <body> <%//假设以下的设置属性操作时servlet之中完成的 request.setAttribute("info","lid_yuj");//设置属性范围 %> <% if(request.getAttribute("info")!=null){//现在有属性存在 %> <h3><%=request.getAttribute("info")%></h3> <% } %> <h3></h3> </body> </html> 之所以要加如一个判断,主要的原因也是在避免输出null,但是这样一来代码太多了,在这种情况 下就可以通过EL完成操作,如下: <%@ page contentType="text/html" pageEncoding="gbk"%> <html> <head><title>这是测试</title></head> <body> <%//假设以下的设置属性操作时servlet之中完成的 request.setAttribute("info","lid_yuj");//设置属性范围 %> <h3>${info}</h3> </body> </html> 如果info为空的话,通过表达式的话在界面中不会输出空,而是输出空白; 所以使用表达式可以很好地控制掉null的问题,而且比之前的直接使用Scriptlet代码输出更加 的简便,而且使用""代替了null。 小结: ·通过表达式语言可以方便的进行属性的输出; ·如果属性不存在,则通过表达式语言自动将null设置为"";