首页 > 代码库 > JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

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="http://www.mamicode.com/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="http://www.mamicode.com/fengjie" scope="page"></c:set> <c:set var="gf" value="http://www.mamicode.com/fengjie" scope="request"></c:set> <c:set var="gf" value="http://www.mamicode.com/fengjie" scope="session"></c:set> <c:set var="gf" value="http://www.mamicode.com/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="http://www.mamicode.com/fengjieout" scope="page"></c:set> <c:out value="${gf2}" default="没有值"></c:out> 3、数据操作 * if标签:逻辑判断 * test属性:逻辑值true|false * 支持EL表达式 <c:set var="user" value="http://www.mamicode.com/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="http://www.mamicode.com/demo1/calculator.jsp"></c:url>

 

JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)