EL和JSTL快速入门
来源:互联网 发布:三菱fx3gaplc编程软件 编辑:程序博客网 时间:2024/05/16 19:52
EL:Expression Language
作用:快速输出JavaBean的值 ,也可用于关系运算(参考下面el_demo.jsp)
格式:${标识符}
原理:通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符 所对应的对象,则返回结果为””(注意,不是null)。
<%@ isELIgnored="false" %>来控制EL表达式是否起作用
简单例子:
<html> <head> <title>el_demo</title> </head> <body> <%--JSP脚本片段 --%> <% Address address=new Address(); address.setLocation("洛阳"); address.setZipcode("471800"); Student stu=new Student(); stu.setName("笑笑"); stu.setAge(25); stu.setSalary(4000); stu.setAddress(address); session.setAttribute("S", stu); %> 用户名:${S.name};<br> 年 龄:${S.age};<br> 薪 水:${S.salary};<br> 地 址:${S.address.location};<br> 邮 编:${S.address.zipcode};<br> 10>5->${10>5}<br>10==5->${10==5}<br>10<5->${10<5}<br> </body></html>运行结果:
需要用到的JavaBean:
public class Student {private String name;private int age;private double salary;private Address address;public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}public Student(){System.out.println("web容器通过反射创建JavaBean对象");}public String getName() {System.out.println("getName()");return name;}public void setName(String name) {this.name = name;System.out.println(name);}public int getAge() {System.out.println("getAge()");return age;}public void setAge(int age) {this.age = age;System.out.println(age);}public double getSalary() {System.out.println("getSalary()");return salary;}public void setSalary(double salary) {this.salary = salary;System.out.println(salary);}}
public class Address {private String location;private String zipcode;public Address(){}public String getLocation() {return location;}public void setLocation(String location) {this.location = location;}public String getZipcode() {return zipcode;}public void setZipcode(String zipcode) {this.zipcode = zipcode;}}JSTL:JavaStandardTaglibLanguage,快速输出动态内容,以代替JSP页面中的脚本<%%>代码,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
在页面中使用JSTL标签需完成以下2个步骤:
1、导入jstl.jar和standerd.jar这两个JSTL的jar文件(放入Web应用中的WEB-INF的lib文件中,在MyEclipse中环境中,可以在创建Web工程时选择Add JSTL libraries to WEB-INF/lib folder选项,这样即可自动将所需jar文件放入lib库目录)。
2、在JSP页面中使用<%@ tablib url=“” prifix=“” %>元素导入标签库。
注意
是否已将集合或变量绑定到域对象中,并确保该域对象没有销毁,因为EL只有从域对象中检索对应的值
JSTL都会和EL绑定在一起用
代码案例:
<html> <head> <title>jstl_demo</title> </head> <body> <% List<String> stringlist=new ArrayList<String>(); stringlist.add("01"); stringlist.add("02"); stringlist.add("03"); stringlist.add("04"); request.setAttribute("SL", stringlist); %> <table border="0" align="center"> <tr> <th>ID</th> <th>操作</th> </tr> <%--取出域对象内容赋给var --%> <c:forEach var="s" items="${SL}"> <tr> <td>${s}</td> <td>购买</td> </tr> </c:forEach> </table> </body></html>注意页面元素的声明:
<%@ page isELIgnored="false" %>
<%--prefix设置以c开头的标签 --%>
例如要导入核心库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
重点:循环控制标签:<c:forEach>用于循环控制:
<c:forEach>属性
属性 描述 是否必须 缺省值
items 要进行循环的项目 否 无
var 代表当前元素的变量名 否 无
对刚才的代码进行修改,用双列集合Map接口来实现:
<html> <head> <title>jstl_demo</title> </head> <body> <%-- <% List<String> stringlist=new ArrayList<String>(); stringlist.add("01"); stringlist.add("02"); stringlist.add("03"); stringlist.add("04"); request.setAttribute("SL", stringlist); %> --%> <% Map<Integer,String> map=new LinkedHashMap<Integer,String>(); map.put(1, "java"); map.put(1, "xml"); map.put(1, "servlet"); map.put(1, "jsp"); pageContext.setAttribute("MAP", map); %> <table border="0" align="center"> <tr> <th>编号</th> <th>书名</th> <th>操作</th> </tr> <%--取出域对象内容赋给var --%> <%-- <c:forEach var="s" items="${SL}"> --%> <c:forEach var="entry" items="${MAP}"> <tr> <td>${entry.key}</td> <td>${entry.value}</td> <td>购买</td> </tr> </c:forEach> </table> </body></html>运行结果:
- EL和JSTL快速入门
- EL表达式和JSTL标签快速入门
- EL表达式和JSTL标签快速入门
- EL表达式和JSTL标签快速入门
- EL表达式和jstl快速入门
- EL表达式和JSTL标签快速入门
- el 和 jstl 基本入门
- EL和JSTL标签库 入门
- JSP;EL和JSTL基本入门总结
- EL+JSTL入门
- el表达式和jstl
- EL和JSTL表达式
- JSTL和EL介绍
- JSTL和EL介绍
- EL和JSTL表达式
- EL和JSTL
- EL和JSTL
- JSTL和EL基础
- 【BZOJ 2424】[HAOI2010]订货
- storm 实时日志分析导图
- 推荐系统之LFM
- 前端问题(2)
- test
- EL和JSTL快速入门
- 红黑树 伸展树
- px和dp之间转换和获取状态栏高度工具类
- unity 一个简单的有限状态机
- 【LaTeX】常用中英文模板,包含数学公式符号图片表格等 (不定期更新)
- JZOJ 4933. 【NOIP2017提高组模拟12.24】C
- 记单词016
- ubuntu安装ssh
- javaweb开发过程中小工具系列之将Map转换成对象