jsp页面跳转问题
servlet:
页面:
老师 请问当添加用户成功后 为啥没在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> 怎么关联的呢
正在回答
你的问题是不知道users表中没有addresses字段,而Users实体类有addresses集合属性,它们之间是怎么映射的吗?如果是,其实问题的关键还是你不太理解resultMap,在执行select * from users <if test="id != null"> where id = #{id}</if>时,配置的resultMap时,下图标记的配置就是来映射Users类中的addresses字段,他会去address表中查询结果来映射到Users类中的addresses属性中,如果对老师的代码中有新的问题,可以新建问答进行提问,因为一个问答如果楼层太高的话,是不方便进行跟踪解答的,祝学习愉快~
是的,这个例子老师在下图标记课程中的4分38秒处有讲哦,同学可以去听一下这届课程呢,祝学习愉快~
同学请看下图的逻辑关系,主要是在userDao中执行了list = getSession().selectList("findUsers");
代码,找到所有用户信息,address只不过是结果集中的一部分,属于联动查询了,所以在下图的sql语句中,查询的是address表,而不是users表,祝学习愉快~
是的,查询时需要配置,插入的时候也是需要配置的,如下所示,在执行插入语句的时候,sql语句是这么写的inset into users(include refid="user_fields"></include>),这里的include是包括的意思,也就是说插入的字段引用的是上面<sql id=”user_fields“>中的sql语句,可以看出插入的字段名为username,所以是可以插入的,如果你将sql中的username改为name就会报错了,祝学习愉快~
你好同学,不报错的原因是因为在usersMapper.xml文件中将数据库中的username字段,映射为实体类中的属性名称了,是通过如下代码进行进行映射的,祝学习愉快~
你好同学,重定向之后浏览器会重新访问服务器,访问路径是detail而不是detail.jsp哦,detail会携带id参数请求UsersFindByIdServlet类,如下图所示,
在该类中,通过如下代码将查询到的user传递到detail.jsp页面完成的关联,如果还有哪里不明白的地方,可以继续提问,祝学习愉快~
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星