JSTL和EL完美结合
来源:互联网 发布:稀疏矩阵存储 编辑:程序博客网 时间:2024/06/18 06:25
引出
对于JSP中的程序控制和业务逻辑,通过嵌入java代码来实现,有种不伦不类的感觉,就像apsx中直接调用后台方法一样,在拨号项目中这样用过。
这样做,阅读性差,也不利于调试和维护。况且JSP只是视图,视图的任务就是显示响应,所以在JSP页面中应该尽可能少的、或者完全不出现Java代码。这样对于页面开发人员,也不用掌握过多的java知识。
而JSTL和EL的结合便很好的解决了这些问题。EL来显示数据,JSTL来实现网页逻辑判断和迭代显示等。这样基本可以取代java代码,而且更加简洁了,或者说封装得更好了,因为使用更少的代码完成了相同的工作,从而提高工作效率。
JSTL概要
JSTL的全称是JSPStandard Tag Library(JSP标准标签库),它是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的;提供五个标准标记库并支持EL。
JSTL标签的配置和使用:
配置:
将jstl.jar和standard.jar拷贝到WEB-INF/lib下
使用:
采用taglib指令引入标签库
<%@ tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%@ tagliburi="http://java.sun.com/jsp/jstl/functions"prefix="fn"%>
<%@ tagliburi="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
Expression Language概要
- EL表达式不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/Servlet2.4、JSP2.0规范就可以
- 定义和设置一个变量,如果不设置范围,默认的是page
- 如果在获取变量值时,不使用作用域访问对象,系统就会按照page—>request—>session—>application的顺序来查找
- 在JSP页面中,经常会进行接收其他页面或者Servlet传递过来的参数;EL为什么提供参数访问对象来获取这些参数值,如:${param:name}
- JSP和EL有一个公共的对象:pageContext,EL可以通过pageContext来访问JSP中其他的隐式对象(request,session),如:${pageContext:request.requestURL}
例子
jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%><html><head><title>Inserttitle here</title></head><body><h1>测试JSTL核心库</h1> <li>测试c:set,c:remove</li><br><c:setvalue="root" var="userid"/>userid:${userid}<br><c:removevar="userid"/>userid:${userid}<br><p><li>条件控制标签:c:if</li><br><c:iftest="${v1 lt v2}">v1小于v2<br></c:if><p> <li>条件控制标签:c:choose,c:when,c:otherwise</li><br><c:choose><c:whentest="${v1 gt v2}">v1大于v2<br></c:when><c:otherwise>v1小于v2<br></c:otherwise></c:choose><c:choose><c:whentest="${empty userList}">没有符合条件的数据<br></c:when><c:otherwise>存在用户数据<br></c:otherwise></c:choose><p> <li>演示循环控制标签:forEach</li><br><h3>采用forEach标签</h3><tableborder="1"><tr><td>用户名称</td><td>年龄</td><td>所属组</td></tr><c:choose><c:whentest="${empty users}"><tr><tdcolspan="3">没有符合条件的数据</td></tr></c:when><c:otherwise><c:forEachitems="${users}" var="user"><tr><td>${user.username}</td><td>${user.age}</td><td>${user.group.name}</td></tr></c:forEach></c:otherwise></c:choose></table> </body>
Servlet
protectedvoid doGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {//条件控制标签request.setAttribute("v1",10);request.setAttribute("v2",20); request.setAttribute("userList",new ArrayList()); //结构Groupgroup = new Group();group.setName("动力节点603班"); Listusers = new ArrayList();for(int i=0; i<10; i++) {Useruser = new User();user.setUsername("张三_"+ i);user.setAge(23+ i);user.setGroup(group);users.add(user);}request.setAttribute("users",users); request.getRequestDispatcher("/jstl_core.jsp").forward(request,response);}
小结
JSTL也好,EL表达式也罢,实质都是后台的java代码,只是为了“名正言顺”的体现在jsp页面,以标签的形式展现。这倒和aspx控件类似,虽然是个类,却在页面使用标签表示。
- JSTL和EL完美结合
- J2EE中EL和JSTL结合运用
- el表达式和jstl
- EL和JSTL表达式
- JSTL和EL介绍
- JSTL和EL介绍
- EL和JSTL表达式
- EL和JSTL
- EL和JSTL
- JSTL和EL基础
- EL和JSTL
- EL和JSTL简介
- JSTL和EL表达式
- el 和jstl
- jsp-el和jstl
- EL和JSTL表达式
- jstl和el表达式
- JSTL和EL表达式
- python中的import,reload,以及__import__
- Shot+物理题
- 开发者使用JasperReport——不同数据源之自定义数据源
- 百度刘杰关于分布式的介绍
- hdu acm 七夕节 (因式分解 + 打表)
- JSTL和EL完美结合
- Java序列化
- 排序
- 二叉树的创建和遍历
- AS 与 JS 交互
- php类和对象
- Mac 安装wget
- php魔术方法
- PHP生成xml文件的几种方法