JavaWeb14(域对象&EL表达式&JSTL)

 pageContext.setAttribute("aa", "小炮");//作用域仅限于当前的jsp页面
  request.setAttribute("aa", "中炮");//作用域仅限于当前请求(转发有效)
  session.setAttribute("aa", "大炮");//作用域仅限于当前会话(浏览器的打开和关闭之间称为一次会话)
  application.setAttribute("aa", "开炮");//作用域仅限于当前web应用(服务器的打开和关闭之间有效)



---域对象的作用范围 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 引入jstl的标签库 -->
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<!-- 下拉框的模糊查询 提示
  <select name="1m">
    <option value="gname">商品名称</option>
    <option value="ginfo">商品描述</option>
  </select>
  -->
 <form action="myload.jsp" method="post">
 商品名:<input type="text" name="str" value="${str}">
   <input type="submit" value="查询">
 </form>
 <br>
   <table border="1px">
     <tr>
       <td>商品序号</td>
       <td>商品名称</td>
       <td>商品价格</td>
       <td>操作</td>
     </tr>
    <!-- 判断集合是否为空 如果为空 就转发到加载数据的页面 -->
    <c:if test="${empty myls}">
     <jsp:forward page="myload.jsp"></jsp:forward>
    </c:if>
    <!-- 循环遍历 for(goods g:ls ) -->
    <c:forEach items="${myls}" var="g">
    <tr>
       <td>${g.gid}</td>
       <td>${g.gname}</td>
       <td>${g.gprice}</td>
    <td><a href="preupdate.jsp?gid=${g.gid}">修改</a></td>
   </tr>
    </c:forEach>
   </table>
   <div>
      【${pageIndex}/${max}】
      <a href="myload.jsp?pid=1&str=${str}">首页</a>&nbsp;
       <a href="myload.jsp?pid=${pageIndex>1?pageIndex-1:1}&str=${str}">上一页</a>&nbsp;
        <a href="myload.jsp?pid=${pageIndex<max?pageIndex+1:max}&str=${str}">下一页</a>&nbsp;
         <a href="myload.jsp?pid=${max}&str=${str}">末页</a>&nbsp;
   </div>
   </center>
</body>
</html>




-----EL表达式运用于分页  
     把pageIndex存到request中 后期取值${pageIndex}
  运用EL表达式取值
     



<%@page import="com.zking.entity.goods"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.biz.GoodsBiz"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
  //做数据到加载
  //表示层 调用 业务逻辑层 biz
  IGoodsBiz igb=new GoodsBiz();
  int pageIndex=1;
  int pageSize=2;
  
  //接收str关键字
  String str=request.getParameter("str");
  if(str==null){
	  str="";//相当于查询全部
  }
  //把str存到request中
  request.setAttribute("str", str);
  
  
  //接收pid
  String pid=request.getParameter("pid");
  if(pid!=null){//点了x页
	  pageIndex=Integer.parseInt(pid);
  }
  //把pageIndex存到request中 后期取值${pageIndex}
  request.setAttribute("pageIndex", pageIndex);
  //调用查询全部的方法
   List<goods> ls=igb.getAllByPage(pageIndex, pageSize,str);
 
   //调用biz层的求最大页码的方法
  int max=igb.getMax("goods where gname like '%"+str+"%'", pageSize);
   //把max存到request中
   request.setAttribute("max", max);
   
   //做判断
   if(ls.size()!=0){//说明有数据
	 //把集合存到request中
	   request.setAttribute("myls", ls);//键  值${myls}
	   //只能转发  因为存在request里的数据仅转发有效
	   request.getRequestDispatcher("index.jsp").forward(request, response);
   }
   else{
	   System.out.print("集合为空—检查DbHelper,数据库里是否有数据,是否提交,dao/biz");
   }









%>





---调用方法并赋值 并且保存到request中 后期取值用EL表达式




表达式取域对象的值:举例

 //实例化一个商品对象
  goods g=new goods();
  g.setGname("尽快");
  g.setGprice(5);
  List<goods> ls=new ArrayList<goods>();
  //把对象放进集合中
  ls.add(g);
//实例化一个商品对象
  goods g1=new goods();
  g.setGname("即可");
  g.setGprice(9);
  //把对象放进集合中
  ls.add(g1);
  //先集合存起来
  request.setAttribute("myls", ls);
  
  <h3>EL表达式取域对象的值</h3>
  1.${pageScope.aa}<br>
  2.${requestScope.aa}<br>
  3.${sessionScope.aa}<br>
  4.${applicationScope.aa}<br>


 <h3>EL运算符</h3>
 ${1+2}_${5>2}_
${empty myls}<!--判断是否为空  -->
  <h3>EL表达式取对象的属性值</h3>
  <!--能够点出来的一定是在实体类存在的属性名  切记 -->
  <%--  ${goods.gname} --%>  
  




 

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.entity.goods"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   <!--引入jstl标签库  -->
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 
  <h2>3.JSTL(jsp标准标签库)</h2>
  <h3>通用标签:set out remove</h3>
  <c:set var="sb" value="${665+1}" scope="session"></c:set>
  <c:out value="${sb}"></c:out><br>
  移除前:${sb}<br>
  <c:remove var="sb" scope="request"/>
  移除后:${sb }
  <h3>条件标签:if</h3>
  <c:if test="${empty myls}">
   就是哈哈哈
  
  </c:if>
  <h3>迭代标签:forEach</h3>
  打印1-10的奇数:<br>
  <c:forEach begin="1" end="10" var="i" step="2">
   ${i}
  </c:forEach>
  <!-- 遍历对象集合for(goods g:ls){}  -->
  <c:forEach items="${myls}" var="g">
   ${g.gname}
  </c:forEach>
  
  <!-- split 用逗号分割 -->
  <c:forTokens items="aa,bb,cc,dd" delims="," var="i">
     ${i }
  </c:forTokens>
  <pre>
  
  
  
  
  
  
  
  <pre>
</body>
</html>

JSTL例子

 

  <c:if test="${empty myls}">
     <jsp:forward page="myload.jsp"></jsp:forward>
    </c:if>
    <!-- 循环遍历 for(goods g:ls ) -->
    <c:forEach items="${myls}" var="g">
    <tr>
       <td>${g.gid}</td>
       <td>${g.gname}</td>
       <td>${g.gprice}</td>
    <td><a href="preupdate.jsp?gid=${g.gid}">修改</a></td>
   </tr>
    </c:forEach>


<!-- 判断集合是否为空 如果为空 就转发到加载数据的页面 -->
//运用JSTL判断是否为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值