java - Spring MVC怎么實(shí)現(xiàn)提交表單后跳轉(zhuǎn)?
問題描述
我想在addItem的頁面輸入了信息之后點(diǎn)提交,可以提交表單然后跳轉(zhuǎn)到queryItems的頁面。請問要怎么寫?是在Controller里寫還是在JSP頁面里寫?基礎(chǔ)問題,剛開始學(xué),求回答,非常感謝。
兩個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:剛才修改了下代碼,把a(bǔ)dd頁面的get和post分開寫了兩個Controller方法,post方法return一個重定向,實(shí)現(xiàn)了想要的效果。還有別的做法嗎
回答3:你的 addItem.jsp 是通過 控制器 add跳轉(zhuǎn)的嗎?如果不是,是直接訪問 addItem.jsp的話。那么在submit的時候,添加成功的話。跳轉(zhuǎn)到queryItems.jsp,沒有添加成功就在返回addItem.jsp,那么addItem.jsp頁面中提示用戶錯誤信息。
相關(guān)文章:
1. windows - asp.net連接上mysql之后如何調(diào)用?比如下面的登錄驗(yàn)證功能怎么實(shí)現(xiàn)2. 剛放到服務(wù)器的項(xiàng)目出現(xiàn)這中錯誤,有高手指點(diǎn)嗎3. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現(xiàn)靈異動畫問題,求解決4. apache - 想把之前寫的單機(jī)版 windows 軟件改成網(wǎng)絡(luò)版,讓每個用戶可以注冊并登錄。類似 qq 的登陸,怎么架設(shè)服務(wù)器呢?5. mysql - 面試題:如何把login_log表轉(zhuǎn)換成last_login表?6. javascript - nodejs實(shí)現(xiàn)異步時遇到的一個問題7. javascript - 為什么嵌套的Promise不能按預(yù)期捕獲Exception?8. javascript - 編程,算法的問題9. css - 手機(jī)qq打開網(wǎng)頁無法使用文件上傳功能?10. java - HTTPS雙向認(rèn)證基礎(chǔ)上有無必要再進(jìn)行加簽驗(yàn)簽?
