EL表达式和JSTL笔记
来源:互联网 发布:网络摄像头通用pc软件 编辑:程序博客网 时间:2024/06/07 03:19
EL
EL概述和基本语法
EL表达式:expression language 表达式语言
要简化jsp中java代码开发。
它不是一种开发语言,是jsp中获取数据的一种规范
${student }
EL表达式只能获取存在4个作用域中的数据
EL的具体功能
t6: <% Student stu = new Student(); stu.setName("李四"); //request.setAttribute("student", stu); session.setAttribute("student", stu); request.getRequestDispatcher("/t7.jsp").forward(request, response); %>t7: ${student }<!-- 相当于pageContext.findAttribute()方法,会依次从四个作用域中查找,不存在的显示"" --> ${student.name}<!-- 属性导航 内部调用了getName()方法--> ${student.addr.district}
EL获取集合中的数据
<% List<String> list = new ArrayList<String>(); list.add("哈哈1"); list.add("哈哈2"); list.add("哈哈3"); list.add("哈哈4"); request.setAttribute("jihe", list); Map<String,String> map = new HashMap<String,String>(); map.put("name", "lisi"); map.put("age","20"); map.put("sex","男"); pageContext.setAttribute("mapjihe", map); %> ${jihe[1] } ${jihe[2] } ${mapjihe} ${mapjihe.age} ${mapjihe["sex"]}
empty操作和三元运算符。
<% String s1 = ""; request.setAttribute("s1", s1); String s2 = null; request.setAttribute("s2", s2); String s3 = "hello"; request.setAttribute("s3", s3); List<String> list1 = new ArrayList<String>(); request.setAttribute("jihe", list1); List<String> list2 = new ArrayList<String>(); list2.add("呵呵"); list2.add("哈哈"); list2.add("嘻嘻"); request.setAttribute("jihe2", list2); int sex = 1; request.setAttribute("gender", sex); %> ${empty s1} --true ${empty s2}--true ${empty s3}--false ${empty jihe}--true ${empty jihe2}--false ${empty jihe2? "你太抠了,什么都没买":"购物车的商品如下:"} <input type="radio" name="sex" ${gender==1 ?"checked='checked'":""} >男 <input type="radio" name="sex" ${gender==0 ?"checked='checked'":""}>女
下面我们可以获取从表单提交过来的数据
${param.username } ${param.pwd } ${paramValues.hobby } ${header["User-Agent"] } ${cookie.JSESSIONID.value }
JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签
使用JSTL实现JSP页面中逻辑处理。如判断、循环等。
在jsp界面引入taglib标签,获取类库中的内容使用。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
核心标签库:
通用标签: set、 out、 remove
<!-- 定义变量 --> <c:set var="num" value="29" scope="request"></c:set> <!-- 显示变量的值 --> <c:out value="${num}"></c:out> <!-- 删除变量 --> <c:remove var="num" scope="request"/> <c:out value="${num }" default="hello"></c:out>
条件标签:if choose
<c:if test="${6>4 }"> aaaaaaaaaaa </c:if> <c:if test="${6<4 }"> bbbbbbbbbbbbb </c:if> <c:set var="num" value="${19 }"></c:set> <c:choose> <c:when test="${num==16 }">呵呵</c:when> <c:when test="${num==17 }">哈哈</c:when> <c:when test="${num==18 }">嘿嘿</c:when> <c:otherwise>拜拜</c:otherwise> </c:choose>
迭带标签:foreach
<c:forEach var="i" begin="1" end="10" step="2"> ${i } </c:forEach> <!-- 实现增强for循环的功能 --> <% List<String> list =new ArrayList<String>(); list.add("java1"); list.add("java2"); list.add("java3"); list.add("java4"); list.add("java5"); request.setAttribute("jihe", list); //for(String ss:list){} %> <c:forEach items="${jihe }" var="ss"> ${ss } </c:forEach>
<% List<String> list =new ArrayList<String>(); list.add("java1"); list.add("java2"); list.add("java3"); list.add("java4"); list.add("java5"); list.add("java6"); list.add("java7"); request.setAttribute("jihe", list); %> <table border=1> <tr> <th>数据</th> <th>索引</th> <th>计数</th> <th>第一个</th> <th>最后一个</th> <th>lala</th> </tr> <c:forEach items="${jihe}" var="ss" varStatus="vs"> <tr ${vs.count%2==0 ? "style='background-color:red'":"style='background-color:green'"}> <td>${ss }</td> <td>${vs.index }</td> <td>${vs.count }</td> <td>${vs.first }</td> <td>${vs.last }</td> <td>${vs.count }</td> </tr> </c:forEach> </table>
c:forEach中的varStatus属性。
指向一个字符串,该字符串引用一个对象。 map.put(“vs”,一个对象);
这个对象记录着当前遍历的元素的一些信息:
getIndex():返回索引。从0开始
getCount():返回计数。从1开始
isLast():是否是最后一个元素
isFirst():是否是第一个元素
0 0
- EL表达式和JSTL笔记
- EL表达式和JSTL笔记
- JSTL和EL表达式的笔记
- el表达式和jstl
- EL和JSTL表达式
- EL和JSTL表达式
- JSTL和EL表达式
- EL和JSTL表达式
- jstl和el表达式
- JSTL和EL表达式
- el和jstl表达式
- JSTL和EL表达式
- EL表达式和JSTL
- EL表达式和JSTL
- el表达式和jstl
- EL和JSTL表达式
- EL表达式和JSTL
- JSTL和EL表达式
- tabhost先简单记一下,以后再改(即使一样的,还是自己写的代码比较亲)
- 堆排序C++实现
- VS2010每次编译都重新编译整个工程的解决方案
- skynet lua 代码静态分析
- HDU-5884-Sort-二分加多叉哈夫曼树
- EL表达式和JSTL笔记
- 旋转数组的最小数字
- 浅谈Android中常用的五种布局方式
- 输入流和字符串的相互转换
- 删除链表中倒数K元素
- 实现音乐播放器,多线程处理进度条
- 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- 实现iOS图片等资源文件的热更新化(一): 从Images.xcassets导出合适的图片
- java web项目发布