博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JSP易错点及常用标签

Posted on 2017-03-01 22:37  one_stone  阅读(228)  评论(0编辑  收藏  举报

1.empty 含义:

     empty用来对一个空变量值进行判断: null、一个空String、空数组、空Map、没有条目的Collection集合

     这种方式的判断就比jstl的<c:if test="${fn:length(list)==0}">数组为空</c:if> 这种好用多了,也好记。

     empty 运算符采用单个表达式作为其变量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为   是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。
  EL 充当指定动态属性值的简化语言,EL 存取器有一个有趣的功能(与 Java 语言的存取器不同),那就是它们在应用于 null 时不抛出异常。如果应用 EL 存取器的对象(例如,     ${foo.bar} 和 ${foo["bar"]} 中的 foo 标识符)是 null,那么应用存取器的结果也是 null。 它对于验证数据特别有用

2.常用运算符:

3.文字

   在 EL 表达式中,数字、字符串、布尔值和 null 都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为 true 和 false
   即:判断字符串是否匹配如同判断数字一样都用“==”
4.其他常用标签
   a:<c:set>操作的语法:
<c:set var="name" scope="scope" value="expression"/>
scope 属性是可选的,其缺省值是 page。
    将表达式结果赋给限制了作用域的变量
    实例:
<c:set var="timezone" scope="session" value="CST"/>
<c:set var="square" value="${param['x'] * param['x']}"/>

 还有一种等价写法:

<c:set var="timezone" scope="session">CST</c:set>

    b:<c:remove> 操作是用来删除限制了作用域的变量

<c:remove var="timezone" scope="session"/>

  var 属性指定待删除变量的名称,scope 属性是可选的,它表示待删除变量来自哪个作用域,缺省为 page

    c:<c:out> 输出

<c:out value="expression" default="expression" escapeXml="boolean"/>

    escapeXml 属性也是可选的。它控制当用 <c:out> 标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 &lt;&gt; 和 &amp;)。

    禁用转义的<c:out>实例

<c:out value="${user.company}" escapeXml=="false"/>

  默认值:

<c:set var="timezone" scope=="session">
   <c:out value="${cookie['tzPref'].value}" default=="CST"/>
</c:set>

     除了简化动态数据的显示之外,当通过 <c:set> 设置变量值时,<c:out> 指定缺省值的能力也很有用。用来赋给限制了作用域的变量的值可以指定为 <c:set> 标记的主体内容,也可以通过其值属性来指定。通过将 <c:out> 操作嵌套在 <c:set> 标记的主体内容中,变量赋值就可以利用其缺省值能力。
外部 <c:set> 标记的行为非常简单:它根据其主体内容设置会话作用域 timezone 变量的值。但是,在这种情况下,主体内容是通过 <c:out> 操作生成的。这个嵌套操作的值属性是表达式 ${cookie['tzPref'].value},它尝试通过 cookie 隐式对象返回名为 tzPref 的 cookie 值。(cookie 隐式对象将 cookie 名称映射到相应的 Cookie 实例,这意味着必须通过对象的 value 特性使用点运算符来检索储存在 cookie 中的实际数据。)

tsxf