为什么使用JSTL

虽然EL表达式可以访问JavaBean的属性,但是并不能实现在JSP中进行逻辑判断,因而要使用JSTL标签。

什么是JSTL

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库 JSTL通常会与EL表达式合作实现JSP页面的编码

                        

 

 

通用标签的使用

set:设置指定范围内的变量值

out:计算表达式并将结果输出显示

remove:删除指定范围内的变量 

 

条件标签的使用 if:if标签用于判断条件是否成立,与Java中的If语句作用相同 语法 

JavaBean在JSP中的局限 获取JavaBean属性必须要实例化 强制类型转化

使用EL表达式简化 

1.什么是EL

EL即Expression Language(表达式语言)

2.EL的功能

替代JSP页面中的复杂代码 EL的语法

${  EL exprission } ${  bean.name } 或  ${  bean['name'] } 

1.自动转换类型

EL得到某个数据时可以自动转换类型

对于类型的限制更加宽松

2.使用简单

相比较在JSP中嵌入Java代码,EL应用更简单

EL语法 以“${”作为开始,以“}”作为结束 直接使用变量名获取值$ ${  username } 

属性范围

            EL中的名称

page

pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null

request

requstScope

session

sessionScope

application

applicationScope

 

 

 

对象名称

说  明

pageScope

返回页面范围的变量名,这些名称已映射至相应的值

requestScope

返回请求范围的变量名,这些名称已映射至相应的值

sessionScope

返回会话范围的变量名,这些名称已映射至相应的值

applicationScope

返回应用范围内的变量,并将变量名映射至相应的值

param

返回客户端的请求参数的字符串值

paramValues

返回映射至客户端的请求参数的一组值

pageContext

提供对用户请求和页面信息的访问

 

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.entity.Orderltem"%>
<%@page import="com.zking.biz.GoodsBiz"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
		  //接收gid
		  String gid=request.getParameter("gid");

		//调用业务逻辑
		IGoodsBiz igb=new GoodsBiz();
		//单个查询得到商品对象
		Goods goods=igb.getGoods(gid);
		
		//先拿订单项的集合
		//解决覆盖问题
		List<Orderltem> ls=(List<Orderltem> )session.getAttribute("mycart");
		if(ls==null){//说明之前购物车是空的
			ls=new ArrayList<Orderltem>();
		
		
		}
		//2解决加同一商品重复问题
		boolean f=false;//假设不存在
		//循环遍历集合
		for(Orderltem oi:ls){
			if(oi.getGoods().getGid()==Integer.parseInt(gid)){
				//改变其数量价格
				oi.setGinum(oi.getGinum()+1);//在原来的基础上加一
				oi.calc();
				f= true;
				break;
			}
			
		}
		
		if(f==false){//说明不存在
			//实例化一个订单项
			Orderltem item=new Orderltem();
			//给对象赋值
			item.setGoods(goods);
			item.setGinum(1);
			item.calc();
			//把对象加到集合中
			ls.add(item);//00:48:40     00:50:57
		}
		

		//把集合存在session中
		session.setAttribute("mycart", ls);//键 值
		//跳转到购物车界面进行展示 
		response.sendRedirect("cart.jsp");




%>