zoukankan      html  css  js  c++  java
  • JSP--常用标签

    JSTL简介:

    JSTL是Java中的一个定制标签库集

    实现了JSP页面中的代码复用,提高效率

    可读性更强,方便前端查看与开发

    环境搭建:

    JSTL标签和Servlet及JSP页面有比较严格的版本对应关系

    tomcat7.0+JSTL1.1.2

     JSTL的i基本配置:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    JSTL好帮手——EL表达式

    Expression Language,经常与JSTL配合使用

    普通写法:<%=session.getValue("name")%>

    EL表达式:<c:out value="${sessionScop.name}"/>

    .与[]通常是通用

    除2种情况外:

    包含特殊字符${user.first-name}  ${user["first-name"]}

    通过变量动态取值:${user[param]} param(name|sex|...)

    JSTL的四大分类以及JSTL函数

    核心标签

    格式化标签

    SQL标签

    XML标签

    EL变量:

    在JSP内置对象:Page,Request,Session,Application

    EL自动类型转换:

    获取文本框的输入

    String str_count = request.getParameter("count");
    int count = Integer.parseInt(str_count);

    EL自动转换:${param.count+20}

    EL隐式对象:

    EL运算符:

     表达式标签:

    JSTL之out标签:

       <c:out value="欢迎您"></c:out>
        <%String str = "user"; request.setAttribute("name", str);%>
        <c:out value="${empty name}"></c:out>
        <!-- 当变量不存在时,通过default输出值 -->
        <c:out value="${defalut }" default="error"></c:out><br>
        <!-- escapeXML设置成false,转义生效 -->
        <c:out value="&ltout标签&gt" escapeXml="false"></c:out>

    JSTL之set标签:

    存值到scope中

    <c:set value="today" var="day" scope="session"></c:set>
    <c:set var="age" scope="application">12</c:set>

    存值到JavaBean中

    <c:set target="${person }" property="name" value="nyan"></c:set>
    <c:out value="${person.name }"></c:out>

    JSTL之remove标签:只能remove某个变量,而不能remove一个对象

    JSTL之catch标签:

    <c:catch var="error">
       <c:set target="${person }" property="id">1024</c:set>
    </c:catch>
    <c:out value="${error}"></c:out>

    流程控制标签:

    JSTL之if标签:

    test属性用于存放判断的条件,一般使用EL表达式来编写

    var指定名称用来存放判断的结果类型为true或false

    scope用来存放var属性存放的范围

    <form action="index.jsp" method="post">
        <!-- 用户输入的数据存入到${param.score}变量中去 -->
            <input type="text" name="score" value="${param.score }"/>
            <input type="submit" value="submit"/>
        </form>
        <c:if test="${param.score>=90 }" var="result">
            <c:out value="优秀"></c:out>
        </c:if>
        <c:out value="${result }"></c:out>

    JSTL之choose、when、otherwise

    <c:choose>
            <c:when test="${param.score>=90 && param.score<=100 }">
                <c:out value="优秀"></c:out>
            </c:when>
            <c:when test="${param.score>=80 && param.score<90 }">
                <c:out value="良好"></c:out>
            </c:when>
            <c:when test="${param.score>=70 && param.score<80 }">
                <c:out value="一般"></c:out>
            </c:when>
            <c:when test="${param.score>=60 && param.score<70 }">
                <c:out value="及格"></c:out>
            </c:when>
            <c:when test="${param.score<60 && param.score>0 }">
                <c:out value="不及格"></c:out>
            </c:when>
            <c:otherwise>
                <c:out value="您的输入不合法"></c:out>
            </c:otherwise>
            
        </c:choose>

    第二种用法:

    只使用choose和when

    JSTL之forEach标签:

    根据循环条件遍历集合中的元素

    var 设定变量名用于存储从集合取得的元素(必须无默认值)

    items指定要遍历的集合(必须无默认值)

    begin、end用于指定遍历的起始位置和终止位置‘

    step指定循环的步长

    varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素状态

    1、全部遍历

    <c:forEach var="存储当前遍历元素的变量" items="待遍历集合">
    </c:forEach>
    <%
            List<String> fruits = new ArrayList<String>();
            fruits.add("apple");
            fruits.add("orange");
            fruits.add("pear");
            fruits.add("watermelon");
            fruits.add("banana");
            request.setAttribute("fruits", fruits);
        %>
        <c:forEach var="fruit" items="${fruits }">
            <c:out value="${fruit }"></c:out><br>
        </c:forEach>

    2、部分遍历

    <c:forEach var="fruit" items="${fruits }" begin="2" end="4">
            <c:out value="${fruit }"></c:out><br>
        </c:forEach>
        <c:forEach var="fruit" items="${fruits }" varStatus="fru">
            <c:out value="${fruit }"></c:out><br>
            <c:out value="index属性值:${fru.index }"></c:out><br>
            <c:out value="first属性值:${fru.first }"></c:out><br>
        </c:forEach>

    JSTL之forTokens:

    用于浏览器字符串,并根据指定字符串截取

    items指定被迭代的字符串

    delims指定使用的分隔符

    var指定用来存放遍历到的成员

    <c:forTokens items="010-8809687879-142" delims="-" var="num">
            <c:out value="${num }"></c:out>
        </c:forTokens>

    URL操作标签:

    JSTL之import标签:

    URL被导入资源的URL路径

    context相同服务器下其他的web工程,必须以“/”开头

    var以String类型存入被包含文件的内容

    Scope var变量的JSP范围

    charEncoding被导入文件的编码格式

    varReader以Reader类型存储被包含的文件内容

    <!-- 导入网络绝对路径 -->
    <c:catch var="error09"> 
      <c:import url="http://www.imooc.com">
      </c:import>
    </c:catch>
    <!-- 导入相对路径 -->
    <c:catch var="error08">
      <c:import url="files/1.txt" charEncoding="gbk">
      </
    c:import>
    </c:catch>

     JSTL之redirect标签:

    <c:redirect url="firstDemo.jsp">
        <!-- 传递参数 -->
            <c:param name="username">lily</c:param>
            <c:param name="password">passw0rd</c:param>
        </c:redirect>

    JSTL之URL标签

    <!-- 动态生成URL -->
        <c:if test="${1<3 }">
            <c:set var="partURL">aa</c:set>
        </c:if>
        <c:url value="http://localhost:8081/${partURL }" var="newURL" scope="session"></c:url>
        <a href="${newURL }">新的URL</a>

    JSTL常用函数:

    <c:out value="${fn:contains('nyan','a')}"></c:out>
    fn:endsWith()
    fn:indexOf()
    fn:escapeXML()
    fn:containsIgnoreCase()

     

  • 相关阅读:
    http基础知识摘录
    数据库基础常用知识
    2018第18周总结
    pycharm里html注释是{# #}而不是<!-- -->?
    paramiko错误信息:Paramiko error: size mismatch in put
    jmeter的Classpath即类或者jar包的搜索路径设置
    scp、paramiko、rsync复制文件的区别
    maven打包插件maven-shade-plugin简单介绍
    sqlalchemy多表联合查询的左连接、右连接等使用
    如何查看sqlalchemy执行的原始sql语句?
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/6420852.html
Copyright © 2011-2022 走看看