jsp-el和jstl

<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:参数值
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值