jsp页面跳转问题

jsp页面跳转问题

servlet:

http://img1.sycdn.imooc.com//climg/5c36fbd600016d8209550286.jpg

页面:

http://img1.sycdn.imooc.com//climg/5c36fbfb0001ae5914340976.jpg

老师 请问当添加用户成功后 为啥没在detail.jsp页面上显示呢?

还有一个问题:

在servlet文件中传的是user.getId(),但是在detail.jsp中用 <c:set var="user" value="${user}"></c:set>

请问 user.getId() 与 <c:set var="user" value="${user}"></c:set> 怎么关联的呢




正在回答

登陆购买课程后可参与讨论,去登陆

6回答

你的问题是不知道users表中没有addresses字段,而Users实体类有addresses集合属性,它们之间是怎么映射的吗?如果是,其实问题的关键还是你不太理解resultMap,在执行select * from  users  <if test="id != null">   where  id = #{id}</if>时,配置的resultMap时,下图标记的配置就是来映射Users类中的addresses字段,他会去address表中查询结果来映射到Users类中的addresses属性中,如果对老师的代码中有新的问题,可以新建问答进行提问,因为一个问答如果楼层太高的话,是不方便进行跟踪解答的,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c383932000169d112550281.jpg

  • 慕圣2241928 提问者 #1
    老师 如果没resultMap 中的 connection就会报错 是吧 那么 老师你能还给我讲一下connection中属性具体含义吗(就以你给的截图为例子)
    2019-01-11 14:52:43
chrismorgen 2019-01-11 17:21:12

是的,这个例子老师在下图标记课程中的4分38秒处有讲哦,同学可以去听一下这届课程呢,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c385fd70001266a03460338.jpg

chrismorgen 2019-01-11 13:50:52

同学请看下图的逻辑关系,主要是在userDao中执行了list = getSession().selectList("findUsers");
代码,找到所有用户信息,address只不过是结果集中的一部分,属于联动查询了,所以在下图的sql语句中,查询的是address表,而不是users表,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c382de90001b2f012540675.jpg

  • 提问者 慕圣2241928 #1
    您说的结果集我知道啊 但是你总要执行 select * from users <if test="id != null"> where id = #{id} </if> 语句吧 根据查询的映射关系 users表中没有 addresses字段 而 Users类中有addresses属性 不会映射出错吗
    2019-01-11 14:12:49
chrismorgen 2019-01-11 12:02:31

是的,查询时需要配置,插入的时候也是需要配置的,如下所示,在执行插入语句的时候,sql语句是这么写的inset into users(include refid="user_fields"></include>),这里的include是包括的意思,也就是说插入的字段引用的是上面<sql id=”user_fields“>中的sql语句,可以看出插入的字段名为username,所以是可以插入的,如果你将sql中的username改为name就会报错了,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c3814500001166e11760253.jpg

  • 提问者 慕圣2241928 #1
    还有老师 在课程最后一点时 老师在Users类中添加了addresses字段 而在users表中没有addresses字段 那么 根据 映射关系 在做增删改查操作的时候不会报错吗
    2019-01-11 12:09:51
chrismorgen 2019-01-11 10:52:00

你好同学,不报错的原因是因为在usersMapper.xml文件中将数据库中的username字段,映射为实体类中的属性名称了,是通过如下代码进行进行映射的,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c38047e000107ea10560069.jpg

chrismorgen 2019-01-10 17:57:29

你好同学,重定向之后浏览器会重新访问服务器,访问路径是detail而不是detail.jsp哦,detail会携带id参数请求UsersFindByIdServlet类,如下图所示,

http://img1.sycdn.imooc.com//climg/5c3716b800013c5d05950105.jpg

在该类中,通过如下代码将查询到的user传递到detail.jsp页面完成的关联,如果还有哪里不明白的地方,可以继续提问,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c3716cb0001916611410432.jpg

  • 提问者 慕圣2241928 #1
    老师 这个问题我可解决了
    2019-01-10 18:11:52
  • chrismorgen 回复 提问者 慕圣2241928 #2
    恩恩,解决就好,如果还有不明白的地方可以继续提问哦,祝学习愉快~
    2019-01-10 18:23:41
  • 提问者 慕圣2241928 回复 chrismorgen #3
    老师 感觉第一次学mybatis好刺激呀 啥也不会 还各种报错 绝望
    2019-01-10 18:33:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师