jsp的一些知识

来源:互联网 发布:怎么看数据库编码格式 编辑:程序博客网 时间:2024/04/30 19:03

<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>


1.${el表达式}

 1.1.访问bean的属性:(bean是有属性和get,set方法的java类)
 
   方式一:
    getAttribute绑订的数据
    
    ${user.name} 
    
     依次从pageContext,request,session,application中
      查找(getAttribute)绑订的数据
    
     范围使用pageScope,requestScope,sessionScope,applicationScope来指定
    
     例子:
      ${sessionScope.user.name}
   方式二:
    ${user["name"]}
    
     允许[]里是邦定名称和数组下标
     
 1.2. 获取请求参数值
 
   ${param.age}
   
     等价于request.getParameter("age");
     
   ${paramValues.city}
   
     request.getParameterValues("city");
     
 1.3. 进行一些简单的计算
 
   一:将计算结果直接输出
   二:给jsp标签的属性赋值
   
   a,算术运算 : "+","-","*","/","%"
   b,逻辑运算: "&&","||","!"
   c,关系运算: ">","<","==","!=",">=","<="
   d,empty运算:判断 集合,字符串
   
   例子:空字符串:${empty ""}
   
   
2.jsp标准标签

 2.1.标签使用步骤(1.5版本以上不需要导入)
 
   step1,.jar文件拷贝到WEB-INF\lib下。
   
   step2,使用taglib指令引入标签
   
     <%@taglib uri="" prefix=""%>
     
     uri属性:指定命名空间,参考对应的.tld文件
     prefix属性:命名空间的前缀。
     
   例子1:
   <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
   例子2:
   <%@taglib uri="http://www.google.com" prefix="c1"%> 
   
 2.2.核心标签
 
   a, if标签
    <c:if test="" var="" scope="">
     标签体: 可以是html, <%  %>  <%=  %> <%!  %>
    </c:if>
    当test属性为true,执行标签体的内容。test属性可以使用el表达式来赋值。
    var属性:指定一个绑订名。
    scope属性:指定绑订范围,可以是"page","request","session","application"。
    
    例子:
     <c:if test="${param.age > 20}" var="rs" scope="request">
        <div>你是一个成年人</div>
     </c:if>
     
     <c:if test="${!rs}">
        <div>你是一个未成年人</div>
     </c:if>
    
   b,choose标签
    <c:choose>
     <c:when test="">
     </c:when>
     ...
     <c:otherwise>
     </c:otherwise>
    </c:choose>
    when标签可以出现一次或者多次,
    otherwise只能出现1次或者0次,表示例外。
    
    例子:
     <c:choose>
       <c:when test="${user.gender =='m'}">男</c:when>
       <c:when test="${user.gender =='f'}">女</c:when>
       <c:otherwise>未知</c:otherwise>
      </c:choose>
    
   c, forEach标签
    用来对集合进行遍历
    <c:forEach items="" var="" varStatus="">
    </c:forEach>
    items  属性: 用来指定要遍历的集合,一般使用el表达式来赋值。
    var   属性: 用来指定一个绑订名,绑订范围是pageContext。
    varStatus属性: 该对象提供了获取当前遍历状态信息的方法,
      比如,getIndex方法(返回当前遍历的对象的下标,从0开始),
          getCount方法(返回当前是第几次访问,下标从1开始)
    第二中用法:
    //每次增加1  把当前的号 放到 var 里面
    <c:forEach begin="(从几开始)" end="(从几结束)" var="">
    </c:forEach>
   
    例子:    
    <c:forEach  items="${users}" var="user" varStatus="s">
      <tr class="row${s.index % 2 + 1}">
       <td>${s.count} </td>
       <td>${user.name}</td>
       <td>${user.gender}</td>
       <td>${s.index}</td>
      </tr>
     </c:forEach>
       
   
 2.3.jsp标签是如何运行的?
    容器依据标签的命名空间找到相应的标签的描述文件(.tld文件),
    接下来,依据标签的描述文件找到标签类,然后实例化,
    最后调用标签对象的相应的方法。 
    
3.自定义标签

 3.1. 写一个java类,继承SimpleTagSupport类。
 
 3.2. override doTag方法,在该方法里面,编写相应的处理逻辑。
 
 3.3. 在.tld文件当中,描述标签。可以参考 c.tld文件,并且,描述文件要放到WEB-INF下
 
  <tlib-version>1.1(版本信息)</tlib-version>
    <short-name>c1(简称)</short-name>
    <uri>http://www.tarena.com.cn/mytag(命名空间)</uri>
    
    <tag>
    
      <name>sayHello(标签名字)</name>
      <tag-class>mytag.HelloTag(标签类,包名.类名)</tag-class>
      <body-content>empty(标签体的内容,empty,scriptless,jsp)</body-content>
      
      <attribute>
             <name>msg(属性名)</name>
          <required>true(是不是必须)</required>
          <rtexprvalue>false(能不能用el表达式)</rtexprvalue>
      </attribute>
      
      <attribute>
       <name>qty(可以多个属性)</name>
       <required>true</required>
       <rtexprvalue>true</rtexprvalue>
      </attribute>
      
    </tag>  

 3.4.标签类获得out对象的办法
 
  //通过SimpleTagSupport类提供的getJspContext方法
  //获得PageContext。
  PageContext ctx = (PageContext)getJspContext();
  //PageContext提供了获取其它八个隐含对象的方法
  JspWriter out = ctx.getOut()
----------------------------------------------

 

 

 

 


 

原创粉丝点击