servlet与jsp,jsp与jsp,jsp与servlet的传递参数问题

xiaoxiao2021-02-28  5

前言

有很多朋友都来关注了,感觉很开心,最近我在做,所以,每天都先整理一下遇到的问题,大家可以跟着看看,当做自己的项目问题一起探讨,每天都会遇到许多的问题,这是不做项目不会碰到的,有时候拼写错误可以让你找半天,快速定位到错误是一个程序员最基本的素质,这就是经验,所以多看别人的问题总结何尝不是一种学习呢!既然你遇不到,那么我把握遇到的问题抛给你!

正文

今天决定做对应店铺内的商品发布问题,具体流程可以先看图,做了一下午终于做通了,第一步进入商铺列表,然后点击商品编辑以后进入第二个页面,大家可以进入对应店铺了,在对应店铺内有很多商品,然后我们在店铺内点击发布商品,直接来到第四部,获取到商家编号,并且不可编辑状态,这样就不会再对应店铺内由于填写错误商家编号而发布商品了。

第一问?

其实这个为何我要固定商家编号,并且不可编辑,不光是为了每次进去可以省略一次填写,更为重要的这一步会出现数据库错误。为什么呢?

第一步,用户id,商家id,fk_uer_id,商品id,fk_shop_id三者是有关系的,因此,商品的外键fk_shop_id是绑定在商家id上的,因此,每次商品输入,必须保证已经有商铺id才会保证数据导入正确,否则,插入失败!必须要贴出来给大家看看,因为看懂错误时学Java最重要的事情,知道了错误才能有针对性的改,平时也的sql语句,也可以提前在数据库中运行一下,看看是否语句有问题。

因此,我把商品编号读取出来以后,就设置了不可编辑,这样就可以省去很多麻烦。

<td align="center" bgColor="#f5fafe" class="ta_01">商家编号:</td>

<td class="ta_01" bgColor="#ffffff" ><input type="text"

name="fk_shop_id" class="bg" value="<%=shop_id%>" disabled="disabled"/></td>


第二问?

第二问也是如上图,每次点击进入下一个页面,如何带着自己的参数传递过去呢?

第一步对应上图第一步获取到对应的店铺编号:

href="${pageContext.request.contextPath}/servlet/SearchItemServlet?id=${s.id}"

${}自动从内置对象中查找值,这里其实是指shop_id,因为这个页面已经获得了shop对象信息, 所以在<c:forEach items="${shop }" var="s">,把shop直接简化成s,得到shop_id的值然后通过url地址进行传参。

${x}首先从当前页面找有没有x,有就显示它,没有,查找request,再没有就查找session,再没有就查找application

接下来交给后台处理,后台通过request.setAttribute("shop_id", request.getParameter("id"));给shop_id赋值前端获取的参数值,然后转到jsp页面显示,得到上面的图2,3。

那么我们怎么知道从后台参数传过来了呢,我们可以家这么一句话:<%

out.print(request.getAttribute("shop_id"));

%>这样页面就能显示出来我们的值有没有传成功了,因为需要自己测试,所以可以留着这句话,才能知道哪里有问题。

接下来点击发布商品,我们需要再把店铺的id传给下一个页面add.jsp。

下面圈内通过<%

String shop_id = (String)request.getParameter("shop_id");

out.print(shop_id);

%>获取shop_id的值,并且在页面上端,我们看到确实传过来了。

现在问题终于解决了,在这个过程中,看起来似乎就这样,但是,在传参的过程中,还是遇到了很多问题,参数怎么写,怎么传,怎么获取都是需要去关注的,这里面用电都不能写错,一旦写错就会造成结果出不来,后台可以显示一些错误,也有很多显示不出来,所以我们必须根据经验去看,有些拼写错误是最致命的,根本查不出来,或者参数传的过程中,格式不对,也会结果出不来,所以采用out.print(shop_id);我们可以让参数显示在页面上,看看是哪一个没传过来,然后有针对性的去解决。

后面会抽空写一下jsp传参的几种方式,做一个总结,今天就先到这里了,谢谢大家,喜欢的关注哦!

转载请注明原文地址: https://www.6miu.com/read-2349971.html

最新回复(0)