java - Spring MVC怎么实现提交表单后跳转?
问题描述
我想在addItem的页面输入了信息之后点提交,可以提交表单然后跳转到queryItems的页面。请问要怎么写?是在Controller里写还是在JSP页面里写?基础问题,刚开始学,求回答,非常感谢。
两个Jsp页面:addItem.jsp
<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head><title>添加</title></head><body><form method='post' action='/items/add.action'> 输入姓名<input name='username' type='text' id='txtname'><br> 输入邮箱<input name='useremail' type='text' id='txtemail'><br> <input type='submit' value='录入' ></form></body></html>
queryItems.jsp
<%@ page language='java' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%><%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %><%@ taglib uri='http://java.sun.com/jsp/jstl/fmt' prefix='fmt'%><!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>查询</title></head><body><h1>用户列表</h1><form action='/items/query.action' method='get'> <c:forEach var='user' items='${userList}'><c:out value='${user.user_name}'/>----<c:out value='${user.user_email}'/><br> </c:forEach></form></body></html>
我的Controller类
@Controller@RequestMapping('/items')public class ItemsController { @Autowired private ItemsService itemsService;@RequestMapping('/query') public ModelAndView queryItems() throws Exception{List<User> itemsList = itemsService.findAllUser();ModelAndView mv = new ModelAndView();mv.addObject('userList', itemsList);mv.setViewName('queryItems');return mv; } @RequestMapping('/add') public ModelAndView addItem(String username, String useremail) throws Exception{User user = new User();user.setUser_name(username);user.setUser_email(useremail);itemsService.insertUser(user);ModelAndView mv = new ModelAndView();mv.addObject(user);mv.setViewName('addItem');return mv; }}
问题解答
回答1:在controller里面写在处理完addItem的页面的请求(某个方法)中, 返回这样写return 'redirect:url';就可以重定向到你指定的url, url就是你queryItems的url
回答2:刚才修改了下代码,把add页面的get和post分开写了两个Controller方法,post方法return一个重定向,实现了想要的效果。还有别的做法吗
回答3:你的 addItem.jsp 是通过 控制器 add跳转的吗?如果不是,是直接访问 addItem.jsp的话。那么在submit的时候,添加成功的话。跳转到queryItems.jsp,没有添加成功就在返回addItem.jsp,那么addItem.jsp页面中提示用户错误信息。
相关文章:
1. MySQL 水平拆分之后,自动增长的ID有什么好的解决办法?2. javascript - 百度图片切换图片时url会改变,但无刷新,没用hash,IE8也支持,请问是用了什么技术?3. 我正在使用jsp / jstl / spring动态生成css和js。如何将此结果放置在头部的链接标签中。不在头部的脚本标签中4. mysql如何添加索引的时候指定索引方式5. angular.js - 各位大神们,你们混合开发,web方式中更推荐用什么框架呀? react?vue?angular?谢谢~6. nosql - mongodb 多组数据不固定字段查询问题 [百度党请绕道]7. css - 非chrome无法在animation中切换背景图么?8. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!9. mysql - 文件存进数据库10. mysql - 一个sql的问题
