我想在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;
}
}
在controller裡面寫
在處理完addItem的頁面的請求(某個方法)中, 返回這樣寫
return "redirect:url";
就可以重定向到你指定的url, url就是你queryItems的url剛剛修改了下程式碼,把add頁面的get和post分開寫了兩個Controller方法,post方法return一個重定向,實現了想要的效果。還有別的做法嗎
你的 addItem.jsp 是透過 控制器 add跳轉的嗎?
如果不是,是直接存取 addItem.jsp的話。
那麼在submit的時候,加上成功的話。跳到queryItems.jsp,沒有加入成功就在回傳addItem.jsp,那麼addItem.jsp頁面中提示使用者錯誤訊息。