JSP系列七:JSP表达式(EL表达式)

 

一,表达式语言:Expression Language 生成动态内容的简洁方式。

 1,JSP2.0最重要的二项特征:JSP语法定义定制标签和表达式语言。

 2,为了计算和输出存储在标准位置的java对象的值。

  * 语法简单有效。
  * 条件输出。
  * 精确访问存储对象。
  * bean属性的简略使用。
  * 对集合元素的简单访问。
  * 对请求参数,cookie和其他请求数据的简单访问。
  * 自动类型转换。
  * 空值取代错误消息。
  
  * 应该将表达式语言的运算符用在表示逻辑(表示数据)的简单任务中,避免在商业逻辑(创建并且处理数据)中使用,将商业逻辑放在java类中。

 3,EL表达式语法:
  ${ 表达式 }

  * 可以在模板文本,自定义和标准动作标签中使用。但不能在脚本中使用。

 4,操作符
  [] (数组记法 )或. (点号记法)操作符:用来访问数据。
  算术操作符
  关系操作符
  逻辑操作符
  Empty操作符:检测值是否为null或empty。
  条件操作符
  括号操作符

 5,数组记法 [] 和点号记法.:

  * 数组记法允许在请求期间计算属性名,括号内的值可以是变量。允许使用不能成为合法属性名的值在访问结合和请求报头中有用。

二,阻止表达式语言的使用
 1,停用整个web应用中的表达式语言。
  使用servlet2.3或更早版本的web.xml文件,则JSP2.0表达式语言自动在web应用中停用。

 2,停用多个jsp页面中的表达式语言。
  使用web.xml中的jsp-property-group元素来指定相应的页面。

  
   
    JSP页面相对路径
    true或false
   

  

 3,停用个别页面中的表达式语言。
  使用page指令的isELEnabled属性。只能在jsp1.2中使用。

 4,停用表达式语言的个别语句。
  将$替换为$.如果JSP2.0页面即使用表达式语言又含有${字符,使用/${来输出${。

三,阻止标准脚本元素的使用。
 
 使用jsp-property-group元素的scripting-invalid子元素来强制执行这项约束。

 
  
   JSP页面相对路径或*.jsp表所有JSP页面被约束
   true或false
  

 


四,表达式中的作用域变量

 * 作用域对象:
   要输出作用域中属性的值,只需要在EL中使用属性的名字。
   EL会自动从作用域对象中按PageContext,HttpServletRequest,HttpSession,ServletContext搜索属性。
   也可以手动使用pageScope,requestScope,sessionScope,applicationScope来指定属性的范围。

   找到属性会调用toString方法并返回调用结果,没有找到返回空字符串而不是null或错误消息。 

 * 请求参数:
   param :等同getParameter(String name)方法。
   paramValues 等同getParameterValues(String name)方法返回所有为指定参数名的值组成的数组。
 
 * 请求报头:
   header和headerValues:访问HTTP请求报头的指定值和全部值。header.报头

 * Cookie的访问:
   cookie 返回Cookie对象而不是值。需要使用Cookie类的value属性来获取值。cookie.userCookie.value

 * 初始化参数:
      initParam 对上下文初始化参数的访问。initParam.参数名
 
五,javaBean与EL表达式

 * 对bean属性的访问提供了点号记法。系统执行反射来分析对象的内在结构。给出属性的值。
  
 * 可以嵌套访问属性。

六,访问集合
 允许使用相同的方式访问不同类型的集合:${attributeName[entryName]}

 * attributeName为数组对象,entryName为下标。

 * attributeName实现了List接口的对象,entryName为索引。
 
 * attributeName实现了Map接口的对象,entryName为key。

 * [entryName]中的entryName可以为变量。

七,使用函数
 1,定义函数:编写java类将方法声明为static。
 2,关联函数:在tld中配置函数使用元素
 3,使用函数:${前缀:函数名(param1,param2,... ...)}
  

 

你可能感兴趣的:(【JSP】)