zoukankan      html  css  js  c++  java
  • jsp之常用标签库之初见

    今天刚开始学习JSTL,所以在这里总结一下今天学到的一些东西。
    1.首先什么是EL表达式? 答:el的原名是:expression language,用来实现代码的复用,同样一段逻辑代码,el表达式表示出来的就是比jsp
    原型语言写出来的简单清晰。
    2.JSTL四大标签分类有哪四大? 答:核心标签、格式化标签、SQL标签、XML标签,其中最重要的是核心标签,其他的地位次之
    3.el标签具体的表示,即该如何在jsp页面中编写el表达式? 答:举例说明如下:<c:out value="常量或者变量“ ></c:out>形如这样的代码就是一个典型的JSTL,中间的value
    就是el表达式;el表达式怎么写? 这样的例子就是一个el表达式:${sessionScope.name};el表达式中可以用.来
    取值,也可以用[]来取值。那么两者有什么不一样的呢?
    3..和[]取值有什么区别和联系? 答:.和[]在大多数的情况下是通用的,但是除了两种情况下是只允许使用[]的; a.当你取值的属性中包含特殊字符时,需要使用[],如:${user.first-name},这样就是错误的,应该使用
    ${user["first-name"]}切忌,这里需要加上双引号,是因为不加双引号,会将first-name当作常量来处理,
    而不是一个变量。 b.当需要通过变量动态取值时需要使用[],如我需要一个变量接收我传过来的值,${user[param]} ,但是.只能是
    具体的属性,如${user.age}、${user.sex}等这种确定的,遇到一个变量待传参数的量只能使用[]. []也可以用于集合内部定位,如${booklist[0].price};这里的0需要定位于集合内部。
    4.el表达式中还有一种简单直观的写法${name},那么它不会出错的原因是什么呢? 答:因为在el表达式中,取值是按照一定的顺序来的,它会先从最小的范围内开始查找,
    page--->request--->session--->application.
    当都找不到的时候,就会出现空字符串,即什么也不会输出来,这里不会有空指针异常报出,本来输出的应该是null,但是
    这里做了优化,会输出空字符串。
    5.el表达式还存在自动类型转换机制。如普通的jsp中从文本框中获取值的返回值类型
    直接是String 类型的,当需要做算术运算时还是要进行类型转换,但是el表达式不需要,直接与数字相运算即可,如:
    普通的jsp书写方式:<% int count = Integer.parseInt(request.getPatameter("name"));
    int sum = count+20;
    %>
    el表达式:${requestScope.name+20}
    在上面的两种写法中可以看出来,当第一种在获取了文本框之中的值后还需要进行类型转换,比较麻烦,但是第二种只需要获取
    就行,会根据后边的变量进行自动类型转换。

    6.el表达式都有哪些隐式对象?
    答:常用的四种:pageScope、requestScope、sessionScope、applicationScope四种对应于jsp中的page、
    request、session、application.
    不常用的还有一些形如:cookie,header、headerValues等,分别表示cookie对象、header中存储的是http的头部的
    map集合等。
    7.el表达式中还可以使用运算符吗?如果可以,能使用哪些运算符呢?
    答:可以使用运算符.
    a.算术运算符:+、-、*、/、mod等
    b.比较运算符:==、!=、>、<等
    c.逻辑运算符:&&、||、!
    d.验证运算符: empty
    下面分别举例说明一下怎么使用这些运算符:
    a.<c:out value="${1+2}" ></c:out> //3
    b.<c:out value="${a==b}" ></c:out> //true,如果在没有定义a,b变量时,它默认都是"",会返回true
    c.<c:out value="${true && false}" ></c:out> //返回false
    d.<c:out value="${empty name}" /> //如果name不为空,那么返回值返回false,如果name不存在,为null
    //或者空字符串均认为true
    好啦,今天的总结就到这里,如果有什么不到之处还望指出。


  • 相关阅读:
    js中拼接字符串
    js中的fliter(),map(),forEach()方法
    美化下拉框select箭头部分(不彻底)
    offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft等属性图示
    js事件代理(事件委托)最简单的理解
    ubuntu14.04 caffe+cuda-7.0配置
    ubuntu 中安装和删除软件总结
    C++中的容器可以同时保存各种数据类型
    string的用法
    linux查看GPU的配置和使用信息
  • 原文地址:https://www.cnblogs.com/future-liu1121/p/7247513.html
Copyright © 2011-2022 走看看