我想实现类别的编辑操作,
我在编辑按钮那设置了带参传递
<c:forEach items="${categories}" var="category"> <tr> <td>${category.name}</td> <td><fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${category.createTime}"/></td> <td><fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${category.updateTime}"/></td> <td>${category.description}</td> <td><a href="/category/updatePrompt.do?categoryId=${category.id}">编辑</a></td> <td><a href="/category/delete.do?categoryId=${category.id}">删除</a></td> </tr> </c:forEach>
让她携带category的id值,传给/category/updatePromot.do
else if("/category/updatePrompt.do".equals(req.getServletPath())){ //执行预编辑操作,跳转到编辑页面 req.getRequestDispatcher("/WEB-INF/views/biz/update_category.jsp?categoryId="+categoryIdStr).forward(req,resp); }
我在这个servlet中,进行了页面跳转,使其进入编辑页面,但是,我在进入到编辑页面之后已经找不到之前传递的category.id值,我想获得这个id值来撰写mapper中的update方法我应该怎么获取?
正在回答
1、同学可以在编辑按钮出把 id name des等都传递到 updatePrompt.do 这里。
<td><a href="/category/updatePrompt.do?categoryId=${category.id}&name=${category.name}">编辑</a></td>
2、在 这个判断中获取之前传递过来的参数/category/updatePrompt.do ,并把它封装到Category中,放到域中,并转发到update_category.jsp 中
else if("/category/updatePrompt.do".equals(req.getServletPath())){ //执行预编辑操作,跳转到编辑页面 String id1=req.getParameter("id"); Long id =Long.valueOf(id1); String name=req.getParameter("name"); String des=req.getParameter("des"); Category category = new Category(); category.setId(id); category.setName(name); category.setDescription(des); req.setCharacterEncoding("UTF-8"); req.setAttribute("category",category); req.getRequestDispatcher("/WEB-INF/views/biz/update_category.jsp").forward(req, resp); }
3、update_category.jsp 中,通过
提交的时候,把id也隐藏的提交到 /category/update.do 中:${category.属性名} 就可以返显/category/updatePrompt.do中封装好的数据。提交的实际,把 id 也提交到/category/update.do 中,例如:
写在from表单里, type="hidden"
:
<input type="hidden" name="id" class="form-control" id="id" value="${category.id}">
4、在/category/update.do 的判断中 再通过
String id= req.getParameter("id");
获取到传递的id值
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
else if("/category/updatePrompt.do".equals(req.getServletPath())){ //执行预编辑操作,跳转到编辑页面 //编辑功能未能实现 String categoryIdStr = req.getParameter("categoryId"); System.out.println(categoryIdStr); if(null != categoryIdStr && !"".equals(categoryIdStr)){ req.getRequestDispatcher("/WEB-INF/views/biz/update_category.jsp?categoryId="+categoryIdStr).forward(req,resp); } }else if ("/category/update.do".equals(req.getServletPath())){ String categoryIdStr = req.getParameter("categoryId"); System.out.println(categoryIdStr); Long categoryId; categoryId = Long.valueOf(categoryIdStr); System.out.println(categoryId); if(null != categoryIdStr && !"".equals(categoryIdStr)){ String name = req.getParameter("name"); String description = req.getParameter("description"); categoryService.updateCategory(categoryId,name,description); //如果找到则编辑,并返回列表 } }
我想要在/category/update.do中获取参数,但是我这个方法使用过后,并不能传递参数到/category/update.do当中
同学的 categoryIdStr 是在哪里获取的呢? 建议在这里获取一下categoryIdStr试试,看看是否获取到了呢?
else if("/category/updatePrompt.do".equals(req.getServletPath())){ //执行预编辑操作,跳转到编辑页面 //获取从页面传过来的categoryId String categoryIdStr = req.getParameter("categoryId"); System.out.println(categoryIdStr ); req.getRequestDispatcher("/WEB-INF/views/biz/update_category.jsp?categoryId="+categoryIdStr).forward(req,resp); }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星