JSP中EL表达式以及JSTL标签库

在JSP中JSTL标签库用的还是比较多的,今天就稍微总结一些JSTL中常用的一些标签:

1.在JSP中还有一个就是EL表达式经常和JSTL标签联合使用
格式:${}

${user.name},${user["name"]}

上面的写法一样,但有2种情况除外
1)包含特殊字符

${user.first-name}   此时应该这样取值:${user["first-name"]}

2)通过变量动态取值

${user[param]}根据用户传入的param值来进行取值

EL变量的范围大小:

PageScope

el中的隐含对象

1)pageContext 唯一一个即是jsp的隐含对象,又是el的隐含对象。jsp页面的上下文
        pageContext.servletContext
        pageContext.session
        pageContext.request
        pageContext.response
  2)param 
  3)paramValues
  4)cookie
  5)initParam
  6)pageScope
  7)requestScope
  8)sessionScope
  9)applicationScope

顺便提一下JSP中的九大内置对象:

  1)out     jsp中用于写到页面的输出流
  2)page        表示当前页面
  3)pageContext 当前页面的上下文
  4)request     jsp封装的请求信息
  5)response    jsp中封装的响应信息
  6)session     jsp中的会话Session
  7)application 当前应用
  8)config      配置信息
  9)exception   异常信息

2.JSTL标签的四大分类及JSTL函数,注意JSTL标签库和JSTL函数在使用他们之前都应该先将他们引入进来

  • 核心标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
A.out>out>
    out value="${person.name}">out>
    1).直接输出常量value=“常量”
    2).输出变量,变量不存在时有一个默认值value=“${name}” default="error"
    3).通过escapeXml="false",value="<标签>"设置输出转义字符后的值
B.set>set>
    1)将一个day的变量存到scope中,
    set value="today" var="day" scope="session">set>或者
    set var="age" scope="application">100set>
    2)存值到javabean中
    "person" class="com.ecjtu.modles.person">
    set target="${person}" property="name" value="李四">set>
C.remove>remove>  
remove掉某个变量,不能remove bean中的某个属性,var属性是必选的 scope属性是可选的
    1)remove var="today" scope="session">remove>
    表示移除掉session中的变量名为today的变量
D.
    catch var="error">
        包含一些可能出错的标签,然后在外面就可以输出变量名为error的错误信息
    catch>
E.var变量保存比较的结果truefalse
    if test="${score>=90}" var="resutl" scope="session">
        out value="您的成绩为优秀">out> 
    if>
F.choose,when,otherwise标签的用法:通常这三个标签放在一起使用,
        1.choose作为when和otherwise标签的父标签来使用
        2.choose和when标签一起组合使用
    用法一:3个标签同时使用
        <c:choose>
            <c:when test="条件1">
                业务逻辑1
            <c:when test="条件2">
                业务逻辑2
            <c:otherwise>
                其它的业务逻辑
        c:choose>
    用法二:两个标签同时使用
        <c:choose>
            <c:when test="条件1">
                业务逻辑
        c:choose>
循环控制标签一般用来遍历集合:
    var 设定变量名用于存储从集合中取出来的元素(必须无默认值)
    items指定要遍历的集合(必须无默认值)
    begin,end用于指定遍历的起始位置和结束位置(有默认值)
    step指定循环的步长(有默认值)
    varStatus有index,count,firstlast几个状态,分别表示元素的索引,第几个元素,
    是否是第一个和最后一个元素,描述begin和end子集中的元素的状态
用法一:全部遍历
    <:forEach var="customer" items="customers">
        操作var变量表示的值
forEach> 用法二:部分遍历 <:forEach var="customer" items="customers" begin="1" end="5"> 操作var变量表示的值
forEach> 用法三:部分遍历中指定步长 <:forEach var="customer" items="customers" begin="1" end="5" step="3"> 操作var变量表示的值
forEach> 用法四:部分遍历中指定步长并且输出元素的状态 <:forEach var="customer" items="customers" begin="1" end="5" varStatus="com"> 操作var变量表示的值
"index属性:${com.index}"> forEach>
forTokens标签的用法:
用于浏览字符串,并根据指定的字符将字符串截取,他同样有forEach中begin,end,step,varStatus这几个属性
        items指定被迭代的字符串
        delims指定使用的分隔符
        var指定用来存放遍历到的成员
forTokens items="038-3823-323" delims="-" var="num">
    "${num}">
forTokens>
URL操作标签的用法:
        import可以把其它的静态或动态文件包含到本JSP页面,导入网络上的绝对路径,可能会出现异常,一般放到cache标签中,也可以导入相对路径的文件,

        属性:
            url:被导入资源的URL路径
            context:相同服务器下其他的web工程,必须以"/"开头
            引入的是同一服务器下的其他web工程的页面,首先修改tomcat的发布路径,
            再修改tomcat目录下的conf/context.xml文件中context标签中的属性:
            crossContext="true"
            var:以String类型存入被导入的文件的内容可以存到session或其他范围中
            Scope:变量的JSP范围
            charEncoding:被导入文件的编码格式
            varReader:以Reader类型存储被包含文件内容????
redirect标签的用法,实现了请求的重定向,
属性:url:指定重定向的页面地址
    context:用于导入其他web工程中的页面
<c:redirect url="">
    <c:param name="username">zhangsanc:param>
    <c:param name="password">123456c:param>
c:redirect>
url标签的用法:用于动态生成一个String类型的URL,可以同param>param>共同使用,也可以使用html的<a>a>标签实现超链接
属性:
    value:表示url的路径
    var:将url路径存储在var的变量中
    scope:var变量的一个范围
  • 格式化标签:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

日期的格式化:

"both" dateStyle="full" timeStyle="full" value="${currentTime}" />
type: 可以是time,date或both。控制是否只生成时间,只生成日期,或者时间日期都生成。 dateStyle: 可以是short, medium, long 或 full(default)。控制打印日期使用的具体格式。 timeStyle: 可以是short, medium, long 或 full(default)。控制打印时间使用的具体格式。 value: 这是一个java.util.Date 类型的值,用于生成日期和时间。 pattern:日期的格式:yyyy-MM-dd HH:mm:ss

数字的格式化:

value="0.1234" type="percent" pattern="#0.00%"/>
符号 意义 0 一个数位 # 一个数位,前导零和追尾零不显示 . 小数点分割位置 , 组分隔符的位置 - 负数前缀 % 用100乘,并显示百分号 其他任何符号 在输出字符串中包括指定符号
  • SQL标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
  • XMl标签
<%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
  • JSTL 函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

JSTL函数的使用:

contains:
        out value="${fn:contains('你好,hello!','hello')}">out>

其他函数的用法类似:

containsIgnoreCase:
endWith("1","2")判断2是否在1的结尾
startWith("1","2")判断2是否在1的开头
fn:escapteXml('设计模式');
fn:indexOf('1','2'):21中第几个出现的
length():
replace():
split():
subString();
toLowerCase():
toUpperCase():
trim():

你可能感兴趣的:(Java,EE,JSP)