Rumah  >  Soal Jawab  >  teks badan

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;
    }
}
PHP中文网PHP中文网2742 hari yang lalu658

membalas semua(3)saya akan balas

  • ringa_lee

    ringa_lee2017-04-18 10:58:20

    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 🎜>

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:58:20

    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?

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:58:20

    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.

    balas
    0
  • Batalbalas