Jweb EL表达式+JSTL标签 知识点 +代码运用

本文介绍了Java EE中的EL(Expression Language)表达式和JSTL(JavaServer Pages Standard Tag Library)标签。EL提供了简单的语法来获取Bean属性,如${bean.name},并自动转换数据类型。其优点包括简化页面代码,提高灵活性。JSTL作为标准标签库,包含一组核心标签,如set、remove、out、if和foreach,方便创建动态JSP页面。文章通过实例展示了如何在不同界面中运用EL和JSTL进行页面逻辑处理。
摘要由CSDN通过智能技术生成

什么是EL:Expression Language(表达式语言)

EL的语法:${EL expression}

                   ${bean.name}  或 ${bean['name']}  :单双引号都可以

name:属性名。

${ bean.name}:实质是调用bean 的getName()的方法。

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

对于类型的限制更宽松

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

JSTL  (JavaServerPages Standard Tag Library)  :标准标签库

优点:①提供一组标准标签

             ② 可编写各种动态JSP页面

                                     核心标签库

通用标签

set:赋值

remove:移除

out:打印

条件标签:if

迭代标签:foreach


代码运用:

咱们拿几个界面,举举例子。

最开始我们进入doindex界面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面过渡界面</title>
</head>
<body>
<l:if test="${not empty u}">
	欢迎您的到来:${u.uname }
	<%request.getRequestDispatcher("index.jsp").forward(request, response);%>
</l:if>
<l:if test="${empty u}">
	<%request.getRequestDispatcher("login.jsp").forward(request, response);%>
	
</l:if>

</body>
</html>

判断用户有没有登录,没有登录就跳转到login界面

进入登录界面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
<script type="text/javascript">
//定义字符串,在0-9出随机数
	var str = "1234567890";
//验证功能
	function yz() {
		//随机出4个0-字符串长度之间的数字 做为下标
		//先定义为空
		yzmStr="";
	//	循环遍历出随机数
		for(var i=1;i<=4;i++){
			yzmStr+=str.substr(Math.round(Math.random()*(str.length-1)),1);
		
		}
		//把验证码赋值到页面
		document.getElementById("syzm").innerHTML=yzmStr;
	}
	
	//返回id值函数
	function $(id) {
		return document.getElementById(id);
	}
	//验证 用户名 和 密码功能
	function login_yz() {
		//验证 用户名 和 密码不能为空 
		//获取用户名
		var uname = $("uname").value;	
		//判断
		if(uname.length==0){
			alert("用户名不能为空");
			return false;
		}
		//获取密码
		var upwd = $("upwd").value;
		if(upwd.length==0){
			alert("密码不能为空");
			return false;
		}
		
		//获取验证码:判断和电脑的验证码是否相等
		
		var yzm = $("uyzm").value;
		if(yzm!=yzmStr){
			alert("验证码输入错误,请重新输入");
			//清空输入的验证码
			$("uyzm").value="";
			//重新生成验证码
			yz();
			return false;
		}
		
	}


</script>


</head>


<body onload="yz()">

	

			
			<form action="dologin.jsp" onsubmit="return login_yz()">
				<div id="user">
					用 户 <input type="text" id="uname" name="textfield"/>
				</div>
				<div id="password">
					密 码 <input type="password" id="upwd" name="textfield1" />
				</div>
				
				<div id="yzm">
					
					验证码 <input id="uyzm" style="width: 50px;" type="text" name="textfield3" />
					<span id="syzm" onclick="yz()"></span>
				</div>
				<div id="btn">
					<input type="submit" value="登录">
					<input type="reset" value="清空">
				</div>
			</form>
			

	
</body>
</html>

再过一下 dologin界面

<%@page import="com.zking.biz.Imp_UserDaoBiz"%>
<%@page import="com.zking.entity.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%


//接收login页面传递的数据
String uname=request.getParameter("textfield");
String upwd = request.getParameter("textfield1");

User u=new Imp_UserDaoBiz().login(uname, upwd);
		

//处理结果
if(u!=null){
	//转发
	//session.setAttribute("u", u);
	//把用户编号放到内置对象 session中
	session.setAttribute("u",u);
	session.setAttribute("uid",u.getUid());
	request.getRequestDispatcher("doindex.jsp").forward(request, response);

}else{
	//失败
	out.print("<script>alert('用户名或密码错误,请重新登录');location.href='login.jsp'</script>");
}
//关闭连接
 %>



登陆成功后:到index界面:

<%@page import="com.zking.biz.Imp_GoodsDaoBiz"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面</title>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript">
function gm(bid,uid) {
	location.href="doShopCar.jsp?bid="+bid+"&uid="+uid;
}
</script>

</head>
<body>
	
<%

	ArrayList<Goods> slist=new Imp_GoodsDaoBiz().getAll();
	Object uuid=session.getAttribute("uid");
	
	pageContext.setAttribute("slist",slist);
	
%>

<l:forEach items="${slist}" var="goods">

 <table class="table table-hover">
  <tr>
    <td>商品编号</td>
    <td>商品名称</td>
    <td>商品价格</td>
    <td>商品介绍</td>
    <td>商品图片</td>
    <td>操作</td>
  </tr>
  <tr>
    <td>${ goods.gid }</td>
    <td>${ goods.gname }</td>
    <td>${ goood.price}</td>
    <td>${ goods.ginfo }</td>
    <td>
    <img src="${ goods.gpic}">
    </td>
    <td>
    <button onclick="gm(${goods.gid},${uid})"  class="btn btn-success">添加到购物车</button>
    </td>
  </tr>
 
</table>


</l:forEach>


</body>
</html>

过渡一下doShopCar界面,添上所生成的订单:

<%@page import="com.zking.biz.Imp_OrderDaoBiz"%>
<%@page import="com.zking.entity.Order"%>
<%@page import="com.zking.biz.Imp_GoodsDaoBiz"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>购物车帮助类</title>
</head>
<body>
	<%

	
	
  Object uuid=session.getAttribute("uid");
	int uid=(Integer)(uuid);
	ArrayList<Order> olist=new Imp_OrderDaoBiz().getAll(uid);
	request.setAttribute("olist", olist);
	request.getRequestDispatcher("ShopCar.jsp").forward(request, response);
	%>

</body>
</html>

显示商品点击购买,进入购物车界面Shop:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
 
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="l"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>订单界面</title>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
</head>
<body>
<l:forEach items="${olist}" var="order">

 <table class="table table-hover">
  <tr>
    <td>订单编号</td>
    <td>用户编号</td>
    <td>商品编号</td>
    <td>商品数量</td>
    <td>商品详情</td>
    <td>商品总价</td>
  </tr>
   <tr>
    <td>${order.oid}</td>
    <td>${order.uid}</td>
    <td>${order.gid}</td>
    <td>${order.sump}</td>
    
    <td>${order.onumber}</td>
    <td>
    <img alt="" src="${order.good.pic}">
    </td>
    
    <td>${order.sump}</td>
  </tr>
</table>


</l:forEach>


</body>
</html>

                

                                

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值