java - Spring MVC怎么实现提交表单后跳转?
PHP中文网
PHP中文网 2017-04-18 10:56:20
0
3
708

我想在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;
    }
}
PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
左手右手慢动作

Tulis
dalam pengawal Selepas memproses permintaan (kaedah tertentu) halaman addItem, kembali dan tulis return "redirect:url"; seperti ini untuk mengubah hala ke url yang anda tentukan 🎜>

左手右手慢动作

Saya baru saja mengubah suai kod dan menulis dua kaedah Pengawal secara berasingan untuk mendapatkan dan menyiarkan pada halaman tambah Kaedah siaran mengembalikan hala semula, mencapai kesan yang diingini. Adakah terdapat cara lain?

伊谢尔伦

Adakah addItem.jsp anda melompat melalui add controller?
Jika tidak, akses terus addItem.jsp.
Kemudian apabila menghantar, tambah perkataan dengan jayanya. Lompat ke queryItems.jsp, dan kembali ke addItem.jsp jika penambahan tidak berjaya, maka pengguna akan digesa dengan mesej ralat pada halaman addItem.jsp.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan