首页 > 代码库 > 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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。