zoukankan      html  css  js  c++  java
  • JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

    1、JSP常用标签
        * 只要支持JSP文件,常用标签有可以直接使用
            * 格式: jsp:xxxx
        * jsp:forward ,完成jsp页面的转发
            * page属性:转发的地址 
             <% request.setCharacterEncoding("UTF-8"); %>
             <jsp:forward page="/index.jsp">
                <jsp:param value="张三" name="userName"/>
             </jsp:forward>
             浏览这个页面会跳转到index.jsp页面,浏览器地址不变
             ${param.userName}
            * 运行原理
                JSP引擎,处理JSP文件,自己解析特定的标签,然后将其编译成java代码
                jsp:forward -- application.getRequestDispatcher("/forward.jsp");
                    * 注意:在JSP页面中可以不用斜杠开头
                        * String path = getAbsolutePathRelativeToContext(relativeUrlPath);自己单独处理,如果不是/开头,自动添加
            
        * jsp:include ,动态包含,在执行当前servlet时才进行文件的合并
            * page属性:包含的页面
            * 执行原理
                * org.apache.jasper.runtime.JspRuntimeLibrary.include
                * request.getRequestDispatcher.include
        * jsp:param,设置参数,与jsp:forward或jsp:include一起使用
            * name属性:指定参数的名称
            * value属性:指定参数的值
            
        * jsp:useBean标签:创建class指定的类,并将此类添加到作用域中
            * class属性:指定类的完整路径名
            * id属性:确定对象的实例对象
            <jsp:useBean id="cal" class="cn.itcast.domain.Calculator"></jsp:useBean>
            
        * jsp:setProperty标签:给指定的Javabean对象设置属性值
            * name属性:已有的JavaBean在web域中的对象
            * property属性:确定需要使用的Javabean的属性
            * value属性:确定设置的具体的内容
            * param属性:获得指定参数的内容
            * 注意:当内容是null时,将不会赋值
            <jsp:setProperty property="*" name="cal" param=""/>获取所有cal值
            param为获取某个参数的值,比如获取<input type="text" name="firstNum"/>,可以这样写<jsp:setProperty property="*" name="cal" param="firstNum"/>
            如果param和property的值相同,可以省略不写
            <jsp:setProperty property="firstNum" name="cal" value="1"/>给cal对象的firstNum属性设置值为1
            
    2、EL表达式的运算符
        * 执行运算
            * .
                * 获得当前对象的属性的值
            * []
                * 书写数字及获得下标所对应的值
                * 书写属性名称,获得相应的值
        * 转义字符:
            * 
                * 使EL表达式失效
        * 算术运算符、逻辑运算符、关系运算符
        * empty 三目运算符
       ${empty user}返回true或false
    3.JSTL标签库 1、使用标签库的流程 * 导包(Myeclipse自带) * 在当前的JSP页面头部声明引用 * <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> * taglib指令:确定所使用的标签库 * uri:确定使用的标签库,具体的名称 * prefix:为当前标签库起一个别名 * 使用 * <prefix:xxx或者<别名:xxx 2、域对象操作 * set:给web域设置值的 var 属性:属性的名称 value属性:属性的值 scope属性:确定作用域 * page * request * session * application <c:set var="gf" value="fengjie" scope="page"></c:set> <c:set var="gf" value="fengjie" scope="request"></c:set> <c:set var="gf" value="fengjie" scope="session"></c:set> <c:set var="gf" value="fengjie" scope="application"></c:set> ${gf} -- ${requestScope.gf}<br/> ${gf} -- ${requestScope.gf}<br/> ${gf} -- ${sessionScope.gf}<br/> ${gf} -- ${applicationScope.gf}<br/> * remove:删除指定名称的web域的值 * var属性:确定名称 * 注意:删除所有作用域的内容 <c:remove var="gf"/> * out:将内容输出 * value:指定内容 * 注意:可以使用EL表达式 * escapeXml:是否转义html规定的字符 * 默认值true,转义 * default:当前输出内容为空时,显示默认值 <c:set var="gf" value="<a href='#'>fengjieout</a>" scope="page"></c:set> <c:out value="${gf2}" default="没有值"></c:out> 3、数据操作 * if标签:逻辑判断 * test属性:逻辑值true|false * 支持EL表达式 <c:set var="user" value="xx"></c:set> <c:if test="${empty user}"> user对象是null <br/> </c:if> * choose标签:确定一组可以进行选择的显示结果 * 必须放置when标签 * 子标签 * when标签:逻辑判断 * test属性:填写逻辑值 * otherwise标签:处理没有处理项,默认项 <c:choose> <c:when test="${empty user}"> when:user null </c:when> <c:when test="${!empty user2}"> when:user not null </c:when> <c:otherwise> 没有任何处理项 </c:otherwise> </c:choose> * forEach标签:进行迭代,每一条信息将显示在标签体 * items属性:确定遍历的对象 * 支持EL表达式 或 * begin属性: * end属性: * 共有 * var属性:确定遍历变量 * step属性:步长 i+=2 i++ -- i+=1 <c:forEach items="${headerValues}" var="hvs"> ${hvs} -- ${hvs.key}: <c:forEach items="${hvs.value}" var="h"> ${h} ***** </c:forEach> <br/> </c:forEach> *url标签:生成当前响应的相对于web站点的完成路径 * value属性:指定的页面的位置 * 注意:内容如果/开头,相对于当前web项目 <c:url var="demoUrl" value="/demo1/calculator.jsp"></c:url>
  • 相关阅读:
    .Net编程接口中的迭代器(转)
    微软,您的.net为中国程序员带来了什么?(转)
    二进制,八进制,十进制,十六进制转换
    简单实现SQL Server2000数据库缓存
    联合查询
    也谈用反射实现Enum→String映射:一种重视性能的方法 (转)
    javascript事件列表解说(转)
    ASP.NET上传控件
    杂杞
    在.net中生成wml
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/4152246.html
Copyright © 2011-2022 走看看