jsp-el和jstl
2015-03-07 09:00
267 查看
<pre class="java" name="code">-----------------------******************el必须存在域中!!!!! java项目都可以使用 -----------------------****************** 常用: value= "${pushMsg.title!=''?pushMsg.title :'无标题'}" <pre class="java" name="code">value= "${pushMsg.title!=null?pushMsg.title :'无标题'}" // 项目中不一定哪个能用,都试试!
El表达式判断是否为空字符串
${empty 值} 返回true ,表示为空字符串;
e.g <c:if test=" ${empty chapterlist} ">
<td>青蛙,是个笨蛋!!!</td>
</c:if>
El表达式判断是否为空
${值 eq null } 返回true 的话,表示为空
<c:if test="${chapterlist eq null }">
<td>青蛙,是个笨蛋!!!</td>
</c:if>
实际案例: 详情页面的数据回显 <td class="td_right"> // 三元运算符判断标题是否为空: <input disabled id="titleContent" name="title" style="width:171px;" value= "${pushMsg.title!=null?pushMsg.title :'无标题'}"> </td> // if判读radio是否选中 <td class="td_right" id="why"> <input disabled id="jishi" type="radio" name="timerSign" value="0" <c:if test="${pushMsg.timerSign == 0 }">checked="checked"</c:if>/>即时发送 <input disabled id="dingshi" type="radio" name="timerSign" value="1"<c:if test="${pushMsg.timerSign == 1 }">checked="checked"</c:if>/>定时发送 发送时间:<input id="sendDate" name="strPushDate" disabled value="${pushMsg.arrivalDate}"/> </td>// for + if判断checkBox是否被选中 <td id="pushObj" class="td_right"> <input disabled id="Android" type="checkbox" name="pushObj" value="0" <c:forEach items="${pushMsg.pushObj}" var="a"> <c:if test="${a == 0}">checked="checked"</c:if> </c:forEach>/><lable>Android</lable> <input disabled id="iOS" type="checkbox" name="pushObj" value="1" <c:forEach items="${pushMsg.pushObj}" var="a"> <c:if test="${a == 1}">checked="checked"</c:if> </c:forEach>/><lable>iOS</lable> </td>
获取数据(1) 使用EL表达式获取数据语法:“${标识符}” EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。 示例:${user} ${p.name}:调用域中名称为p 对象的getName方法,点运算符用于获取属性的取值 ${p.address.city }如果address没有new ,是不显示值的 ,空指针不显示值 ${p.address.city}<br/> ${p.class}<br/> 完整包名 ${p['class']}<br/> <input type="text" value='${p["class"]}'/>对 <input type="text" value="${p['class']}"/>对 <input type="text" value='${p['class']}'/>错 获取数据(2) EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如: ${user.address.city} ${user.list[0]}:访问有序集合某个位置的元素 ${map.key} 或者 ${map["key"]} : 获得map集合中指定key的值 <!-- 获取数组中指定的元素 --> <% String str[] = {"a","b","c"}; pageContext.setAttribute("str",str); %> ${str[1]}<br/> ${str[100] }<br/> <!-- 获取List中指定的元素 --> <% List list = new ArrayList(); list.add("aa"); list.add("bb"); list.add("cc"); pageContext.setAttribute("list",list); %> ${list[2]} <hr/> <!-- 获取Map中指定的元素 --> <% Map map = new LinkedHashMap(); map.put("a","aaa"); map.put("b","bbb"); map.put("c","ccc"); pageContext.setAttribute("mm",map); %> ${mm.b }<br/> <% Map map1 = new LinkedHashMap(); map1.put("1","aaa"); map1.put("2","bbb"); map1.put("3","ccc"); pageContext.setAttribute("mm1",map1); %> ${mm1["3"] }<br/> <hr/> <% Map map2 = new LinkedHashMap(); map2.put("a",new Person("葛付以","男",true)); map2.put("b",new Person("余睿","女",false)); map2.put("c",new Person("蒋小平","女",true)); pageContext.setAttribute("mm2",map2); %> ${mm2["a"].name} ${mm2["b"].name} ${mm2.c.name} Tip: 执行运算 empty运算符:如果判断的对象是null或者空字符串,都返回true。 对于集合,即使集合对象本身不是null,没有任何元素,也返回true。 EL表达式不支持字符串连接操作。 ****** empty运算符:检查变量是否为null或“空”,很好用!!! ****** 三元表达式:${user!=null?user.name : “”} ,很好用!!! [ ] 和 . 号运算符 <body> <jsp:useBean id="p" class="cn.itcast.domain.Person"></jsp:useBean> ${empty p}<br/> p是空的 返回true ${empty "" }<br/> true <hr/> <% List list = new ArrayList(); list.add("aaa"); pageContext.setAttribute("list",list); %> ${empty list } <hr/> <% session.setAttribute("user","gfy"); %> ${empty user?"请登录":"欢迎您"}${user}<br/> <% // 0 女 1 男 pageContext.setAttribute("gender","0"); %> ${gender=="0"?"女":"男"} </body> Tip:获得web开发常用对象 EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。 语法:${隐式对象名称} :获得对象的引用
============================================================ ------------------------------------------------------------ 王昭廷的笔记 *****四、EL表达式 它只是JSP中的表达式,不是一种开发语言。 基本语法:${EL表达式} 4.1获取数据 *****EL表达式只能获取四大域中的数据。 EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常 p.name:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。 .运算符: []运算符:.运算符能做的,[]也能做。[]能做的,.不一定能做。 比如${p.name}===${p['name']}==${p["name"]} []优秀在:可以取不符合Java命名规范的东东。 4.2数学逻辑运算: empty运算符:如果判断的对象是null或者空字符串,都返回true。 对于集合,即使集合对象本身不是null,没有任何元素,也返回true。 EL表达式不支持字符串连接操作。 4.3获取JSP的内置对象(11大EL内置对象):难点,不要与JSP的内置对象和范围名称搞混 11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构 EL隐式对象名称 Java类型 备注 pageContext javax.servlet.jsp.PageContext 与JSP中的内置对象完全相同 剩余的都是代表的Map集合 pageScope java.util.Map 代表着PageContext页面范围域那个Map requestScope java.util.Map 代表着ServletRequest请求范围域那个Map sessionScope java.util.Map 代表着HttpSession会话范围域那个Map applicationScope java.util.Map 代表着ServletContext应用范围域那个Map param java.util.Map 代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。 paramValues java.util.Map 代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。 header java.util.Map 代表着请求消息头。key:头名称。value:头值,它是一个字符串。 headerValues java.util.Map 代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。 cookie java.util.Map 代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身 initParam java.util.Map 代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值
相关文章推荐
- JSP之EL表达式和JSTL标签库
- JSP、JSTL、EL学习总结
- JSP(8)—EL案例和JSTL案例
- 【JavaEE】jsp学习笔记之el技术和jstl
- jsp基础与提高(EL、JSTL)
- jsp/el和jstl动态页面
- JSP,EL,JSTL快速入门
- Day20-jsp & el & jstl
- JSP模式&EL&JSTL(1)
- 动态页面技术JSP/EL/JSTL
- java-例子:MVC模式,用jstl和el输出数据到jsp页面.
- JSP/EL/JSTL
- java西天取经之路(四)JSP标签库 【EL和JSTL】
- Spring mvc 实例 --JSTL结合EL实现JSP获取后台List回显界面
- jsp当中JSTL对特殊字符的处理:EL运算符
- jsp中的EL和JSTL的关系
- idea下Maven项目的webapp下的jsp页面无法使用el或者jstl表达式
- 【JavaEE学习笔记】JSP,EL,JSTL
- JSTL中EL标签与Struts2中OGNL标签在JSP页面上的区别
- 05_JSP_EL_JSTL