javaWeb15(EL+JSTL的运用)

Everybody大家好!

今天给大家带来的是EL+JSTL的运用,这一期文字内容不多,主要是给大家带来一个上期学习内容的运用案例,代码段比较多,还请慢慢看,我们以商品的修改和分页为例:

主界面(index.jsp):

(其中需要查询全部&单个查询&修改&获取最大页面的dao方法)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@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>
	<!-- 
		下拉框的模糊查询
		<select name="xl">
			<option value='gname'>商品名称</option>
			<option value='ginfo'>商品描述</option>
		</select>
	 -->
	<form action="myload.jsp" method="post">
		商品名:<input type="text" name="gname" value="${gname}">
		<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>
			${1+1}
		</c:if>
		<!-- 展示数据 循环遍历集合 -->
		<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&gname=${gname}">首页</a>&nbsp;
		<a href="myload.jsp?pid=${pageIndex>1?pageIndex-1:1}&gname=${gname}">上一页</a>&nbsp;
		<a href="myload.jsp?pid=${pageIndex<max?pageIndex+1:max}&gname=${gname}">下一页</a>&nbsp;
		<a href="myload.jsp?pid=${max}&gname=${gname}">末页</a>&nbsp;
	</div>
</body>
</html>

 如果集合为空即跳转到myload.jsp界面调用查询全部方法加载数据

myload.jsp页面:

<%@page import="com.zking.entity.goods"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.dao.GoodsDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//调用业务逻辑层 biz
	GoodsDao gb=new GoodsDao();
	int pageIndex=1;
	int pageSize=2;
	//接收pid
	String pid=request.getParameter("pid");
	if(pid!=null){//说明点了x页
		pageIndex=Integer.parseInt(pid);
	}
	//把pageIndex存起来 方便取 
	request.setAttribute("pageIndex", pageIndex);
	
	//接收表单提交过来的关键字
	String str=request.getParameter("gname");
	if(str==null){
		str="";//相当于查询全部 
	}
	//把gname存起来 
	request.setAttribute("gname", str);
	
	//获得最大页码
	int max=gb.getMax("goods where gname like '%"+str+"%'", pageSize);
	//把max存起来 方便取 ${max}
	request.setAttribute("max", max);
	//调用查询全部的方法
	List<goods> ls=gb.getAllByPage(pageIndex, pageSize, str);
	if(ls.size()!=0){//集合中有数据
		//把集合存起来=request中 
		request.setAttribute("myls", ls);
		//跳转到展示页面进行展示 只能转发
		request.getRequestDispatcher("index.jsp").forward(request, response);
	}
	else{
		System.out.print("meishuju");
		System.out.print("集合为空-优先检查数据库中是否有数据 DBHelper以及dao/biz");
	}
%>

其中包含分页的方法(获得最大页数):

当获取完值在主界面展示成功后,可点击修改跳转到纯java代码的逻辑页面preupdate.jsp页面获取该商品对象,将商品数据传递到update.jsp页面进行修改

preupdate.jsp:

<%@page import="com.zking.entity.goods"%>
<%@page import="com.zking.dao.GoodsDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//接收gid
	String gid=request.getParameter("gid");
	//调用业务逻辑层
	GoodsDao gd=new GoodsDao();
	//查询单个的方法
	goods goods=gd.getGoodsByGid(gid);
	//存request中
	request.setAttribute("goods", goods);//${goods}
	//只能转发
	if(goods!=null){
		request.getRequestDispatcher("update.jsp").forward(request, response);
	}
	else{
		System.out.print("对象为空");
	}
%>

 update.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
	<form action="doupdate.jsp" method="post">
	<!-- name值跟实体类的属性名一致 -->
		商品序号:<input type="text" name="gid" value="${goods.gid}" readonly="readonly"><br>
		商品名称:<input type="text" name="gname" value="${goods.gname}"><br>
		商品价格:<input type="text" name="gprice" value="${goods.gprice}"><br>
		<input type="submit" value="修改">
		<input type="reset" value="清空">
	</form>
</body>
</html>

 将数据更改之后点击修改调转到doupdate.jsp页面,如果修改成功就返回主界面:

doupdate.jsp:

<%@page import="com.zking.biz.GoodBiz"%>
<%@page import="com.zking.biz.IGoodBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="g" class="com.zking.entity.goods"></jsp:useBean>
<jsp:setProperty property="*" name="g"/>
<%
	//设置编码方式
	request.setCharacterEncoding("utf-8");
	/* //接收表单的值
	String gid=request.getParameter("gid");
	String gname=request.getParameter("gname");
	String gprice=request.getParameter("gprice");
	//实例化一个商品对象
	Goods goods=new Goods();
	//给对象赋值
	goods.setGname(gname);
	goods.setGprice(Integer.parseInt(gprice)); */
	//调用业务逻辑层
	IGoodBiz igb=new GoodBiz();
	if(igb.updateGoods(g, g.getGid())>0){
		response.sendRedirect("index.jsp");
	}
	else{
		out.print("<script>alert('修改失败');location.href='preupdate.jsp?gid="+g.getGid()+"';</script>");
	}

%>

ok,以上就是我们大体的操作步骤,主要还是看代码一步一步慢慢的细心的来,如果做不到像我这么信息的话很可能出不来效果或者dao方法有问题,好了,咱们下期见!

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: javaweb eljstl登录页面是一种使用Java Web技术开发的登录页面。EL(Expression Language)是一种表达式语言,可以在JSP页面中使用,用于访问JavaBean中的属性和方法。JSTL(JavaServer Pages Standard Tag Library)是一组标签库,可以在JSP页面中使用,用于简化JSP页面的开发。 在javaweb eljstl登录页面中,可以使用EL表达式访问用户输入的用户名和密码,并将其传递给后台Java程序进行验证。同时,可以使用JSTL标签库来简化页面的开发,例如使用<c:if>标签来判断用户输入的用户名和密码是否为空,使用<c:forEach>标签来遍历错误信息等。 总之,javaweb eljstl登录页面是一种高效、简洁、易于维护的登录页面开发方式,可以提高开发效率和用户体验。 ### 回答2: JavaWeb是一种基于Java语言的Web应用技术,它能够利用Java语言的优秀特性构建高效可靠的Web应用程序。在JavaWeb应用程序中,EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)是常用的组件,可以用于实现许多基础功能,如登录页面。 在JavaWeb应用中,登录页面是用户与应用程序进行交互的入口,它通常具有以下几个关键要素:登录表单、用户验证、session管理以及跳转逻辑。 在使用ELJSTL实现登录页面时,首先需要创建一个登录表单,该表单应包含用户输入的用户名和密码,并通过表单提交将其传递给后端进行认证。 接下来,我们可以使用EL表达式和JSTL标签库实现用户验证。EL表达式可以用来获取表单中输入的用户名和密码,并传递给Java后台进行验证。JSTL标签库也可以用来进行逻辑控制,如if语句判断验证结果是否正确。在用户通过验证后,我们可以在session中存储用户信息以便后续页面使用。 最后,我们可以利用EL表达式和JSTL标签库完成跳转逻辑。可以使用JSTL中的<c:choose>和<c:when>标签来判断用户角色,并根据角色不同跳转到相应的页面。可以利用EL表达式来获取session中保存的用户信息,以便进行跳转。 总之,ELJSTLJavaWeb应用开发中常见的技术组件,能够帮助我们完成许多基础功能,如登录页面。通过灵活运用这些技术组件,我们可以快速构建高效可靠的Web应用程序。 ### 回答3: JavaWeb ELJSTLJavaWeb中比较常用的两个技术,它们可以帮助我们在开发中更加快捷地完成一些常见的操作。在登录页面中,我们可以运用这两个技术实现输入验证、错误提示等功能。 首先,我们可以在登录页面中使用EL表达式获取用户输入的值。EL表达式可以使用${ }的形式获取表单中的值,比如${param.username}可以获取名为username的表单项的值。我们可以将用户输入的用户名和密码保存在request中,以备后续使用。 接着,我们可以使用JSTL标签库来进行表单验证和错误提示。在表单提交之前,我们可以使用<c:if>标签对用户名和密码进行判断,看是否为空。如果有为空的情况,则可以使用<c:out>标签和错误提示来告诉用户应该输入什么信息。此外,我们还可以使用<c:choose>和<c:when>标签来进行更复杂的条件判断,以实现更加灵活的验证。 最后,我们要记得在处理登录的后台逻辑时,也要使用EL表达式和JSTL标签库来实现更加高效的操作。通过这些技术的运用,我们可以快速完成一个功能齐全、操作简便的登录页面,并减少代码量和维护成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值