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

    JSP常用标签可以理解为JSTL

    user:普通用户

    admin:站点管理员

    JSTL1.1.2下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

    第一个JSTL小程序

    <c:out>输出标签:是属于JSTL核心标签中的一个,所以要先导入核心标签库

     

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>Insert title here</title>
     9 </head>
    10 <body>
    11 <!-- 使用out标签输出常量 -->
    12 <c:out value="this is our first JSTL demo"></c:out><br>
    13 </body>
    14 </html>

    运行结果

    value中的值可以输出变量以及常量

    常量:直接输出

    变量:EL表达式进行变量的获取

    普通的写法:通过JSP内置的session对象去获取name这个value

    EL表达式写法:从session的范围中取出name的值

    如果没有直接做范围的限定,它会按以下顺序依次去找:从小到大的顺序

    如果四个范围都没有找到,说明页面中没有这个变量。没有的话正常应该输出null,但是EL变量做了优化,不会输出null,它会直接输出一个为空的字符串。

    例:<c:out value = "${username}"></c:out>  如果四个范围都没有找到,说明页面中没有username这个变量

    获取用户的输入

    如果想通过count进行运算的话,要转换成Int值的类型

    用于计算。要是没进行字符串的转换,计算结果只是字符串的拼接

     <%String username="zhangsan";request.setAttribute("username",username);%>
    <c:out value="${empty username}"></c:out>

    输出结果为false

     <%String username="null";request.setAttribute("username",username);%> 为空
    <c:out value="${empty username}"></c:out>

    输出结果为true

     <%String username="";request.setAttribute("username",username);%>  为空字符串
    <c:out value="${empty username}"></c:out>

    输出结果为true

    注意:如果没有request.setAttribute("username",username);EL表达式取不到username的值

     

    输出变量首先要向某一个scope赋值,存储变量值

    1 <!-- 使用out标签输出变量 -->
    2 <!-- 直接输出变量 -->
    3 <%session.setAttribute("name","Jessica");%>
    4 <c:out value="${name}"></c:out><br>
    5 <!-- 当变量不存在时,通过default属性输出默认值error -->
    6 <c:out value="${name1}" default="error"></c:out><br>
    <!-- 设置输出转义后的字符需要escapeXml属性值设置成false -->
    <c:out value="&ltout标签&gt" escapeXml="false"></c:out><br

    输出结果

    快捷键:Alt+↑  将选中的代码块上移

     1 package com.imooc.test;
     2 
     3 public class Person {
     4 
     5     private String name2;
     6     private String age2;
     7     private String address;
     8     public String getName2() {
     9         return name2;
    10     }
    11     public void setName2(String name2) {
    12         this.name2 = name2;
    13     }
    14     public String getAge2() {
    15         return age2;
    16     }
    17     public void setAge2(String age2) {
    18         this.age2 = age2;
    19     }
    20     public String getAddress() {
    21         return address;
    22     }
    23     public void setAddress(String address) {
    24         this.address = address;
    25     }
    26     
    27 }

    将Person类实例化,实例化的变量名叫person

    firstDemo.jsp

    <jsp:useBean id="person" class="com.imooc.test.Person"></jsp:useBean>
     1 <!-- 存值到scope中 -->
     2 <c:set value="today" var="day" scope="session"></c:set>
     3 <c:out value="${day}"></c:out><br>
     4 
     5 <c:set var="age" scope="application">eleven</c:set>
     6 <c:out value="${age}"></c:out><br>
     7 
     8 <!-- 通过set标签向person中赋值 -->
     9 <c:set target="${person}" property="name2" value="zhangsan"></c:set>
    10 <c:out value="${person.name2}"></c:out>&nbsp;&nbsp;
    11 <c:set target="${person}" property="age2" value="26"></c:set>
    12 <c:out value="${person.age2}"></c:out>&nbsp;&nbsp;
    13 <c:set target="${person}" property="address" value="北京市 朝阳区"></c:set>
    14 <c:out value="${person.address}"></c:out>&nbsp;&nbsp;<br>
    15 
    16 <!-- value值可以写在两个标签之间 -->
    17 <c:set target="${person}" property="name2">zhangsan</c:set>
    18 <c:out value="${person.name2}"></c:out>&nbsp;&nbsp;
    19 <c:set target="${person}" property="age2">26</c:set>
    20 <c:out value="${person.age2}"></c:out>&nbsp;&nbsp;
    21 <c:set target="${person}" property="address">北京市 朝阳区</c:set>
    22 <c:out value="${person.address}"></c:out>&nbsp;&nbsp;<br>

    运行结果

    1 <!-- remove标签的用法 -->
    2 <c:set var="lastName" value="Lily"></c:set>
    3 <c:out value="${lastName}"></c:out>
    4 <c:set var="firstName" value="Wang"></c:set>
    5 <c:remove var="firstName"/>
    6 <c:out value="${firstName}"></c:out><br>

    注意:remove只能直接remove掉某一个变量,对象中的某一个属性就不可以。

    1 <!-- catch标签的用法 -->
    2 <c:catch var="error">
    3     <c:set target="aa" property="bb">asasa</c:set>
    4 </c:catch>
    5 <c:out value="${error}"></c:out><br>

     

     1 <form action="firstDemo.jsp" method="post" >
     2 <!-- 通过表单接收用户的输入,表单中包含文本框,name:记录用户的成绩,value:用户的输入,接收到用户的输入之后,把它直接存到我们param范围内的score变量中去
     3 用户点击提交到firstDemo.jsp页面,提交方式:post -->
     4     <input type="text" name="score" value="${param.score}"/>
     5     <input type="submit"/>
     6 </form>
     7 <!-- 优秀 score>=90 -->
     8 <c:if test="${param.score>=90}" var="result" scope="application">
     9     <c:out value="恭喜,您的成绩是优秀!"></c:out>
    10 </c:if>
    11 <c:out value="${applicationScope.result}"></c:out>

    通过表单接收用户的输入,表单中包含文本框,name:记录用户的成绩,value:用户的输入,接收到用户的输入之后,把它直接存到我们param范围内的score变量中去

    用户点击提交到firstDemo.jsp页面,提交方式:post

     

     1 <form action="firstDemo.jsp" method="post" >
     2     <input type="text" name="score" value="${param.score}"/>
     3     <input type="submit"/>
     4 </form>
     5 
     6 <!-- choose、when、otherwise -->
     7 <c:choose>
     8     <c:when test="${param.score>=90 && param.score<=100}">
     9         <c:out value="优秀"></c:out>
    10     </c:when>
    11     <c:when test="${param.score>=80 && param.score<90}">
    12         <c:out value="良好"></c:out>
    13     </c:when>
    14     <c:when test="${param.score>=70 && param.score<80}">
    15         <c:out value="中等"></c:out>
    16     </c:when>
    17     <c:when test="${param.score>=60 && param.score<70}">
    18         <c:out value="及格"></c:out>
    19     </c:when>
    20     <c:when test="${param.score>=0 && param.score<60}">
    21         <c:out value="不及格"></c:out>
    22     </c:when>
    23     <c:otherwise>
    24     <c:out value="您的输入有问题"></c:out>
    25     </c:otherwise>
    26 </c:choose>

    <c:choose>
        <c:when test="${param.score==100}">
            <c:out value="太棒了,你是第一名!"></c:out>
        </c:when>
    </c:choose>

    var:给当前遍历的变量取一个名字

    <!-- 用法一:全部遍历 -->
    <c:forEach var="fruit" items="${fruits}">
        <c:out value="${fruit}"></c:out><br>
    </c:forEach>

    <!-- 用法二:部分遍历 -->
    <c:forEach var="fruit" items="${fruits}" begin="1" end="4">
        <c:out value="${fruit}"></c:out><br>
    </c:forEach>
    <!-- 用法三:部分遍历并指定步长 -->
    <c:forEach var="fruit" items="${fruits}" begin="1" end="4" step="2">
        <c:out value="${fruit}"></c:out><br>
    </c:forEach>
    1 <!-- 用法四:部分遍历并输出元素状态 -->
    2 <c:forEach var="fruit" items="${fruits}" begin="1" end="4" varStatus="fru">
    3     <c:out value="${fruit}的四个属性值"></c:out><br>
    4     <c:out value="index属性:${fru.index}"></c:out><br><!-- (集合元素中的下标)下标 -->
    5     <c:out value="count属性:${fru.count}"></c:out><br><!-- (计算在集合中的是第几个数)集合中计数,从1开始 -->
    6     <c:out value="first属性:${fru.first}"></c:out><br><!-- 第一个值为true,其它都为false -->
    7     <c:out value="last属性:${fru.last}"></c:out><br><!-- 最后一个值为true,其它都为false -->
    8     <c:out value="-----------------------------"></c:out><br>
    9 </c:forEach>

    <!-- forTokens标签的用法 -->
    <c:forTokens items="010-88096789-123" delims="-" var="num">
        <c:out value="${num}"></c:out><br>
    </c:forTokens>

     1 <!-- import标签的用法 -->
     2 <!-- 导入网络上的绝对路径 -->
     3 <c:catch var="error09">
     4     <c:import url="https://www.imooc.com"></c:import>
     5 </c:catch>
     6 <c:out value="${error09}"></c:out>
     7 
     8 <!-- 导入相对路径文件 -->
     9 <c:catch var="error08">
    10     <c:import url="tt.txt" charEncoding="gbk"></c:import>
    11 </c:catch>
    12 <c:out value="${error08}"></c:out><br>

    引入同一个服务器的发布路径下的AnotherWebProject下的importFile.jsp页面到当前的project路径来

    <!-- context属性的用法 -->
    <c:catch var="error06">
        <c:import url="/importFile.jsp" context="/AnotherWebProject" charEncoding="gbk"></c:import>
    </c:catch>
    <c:out value="${error06}"></c:out><br>

     

    常用JSTL函数

    fn:contains

    fn:escapeXml

  • 相关阅读:
    C#中创建Android项目
    C#中创建Android项目
    在C#中获取当前屏幕的分辨率的方法
    数据库面试
    计算机网络面试
    linux面试
    Java使用递归检索文件个数
    二分查找
    富途证券面经(一面挂)
    Mysql
  • 原文地址:https://www.cnblogs.com/songsongblue/p/9809700.html
Copyright © 2011-2022 走看看