java - Spring MVC 页面

标签 java spring spring-mvc jsp servlets

我有一个问题,我不明白为什么这部分代码(注册在哪里)即使我写了一个url,Spring也找不到。但是另一部分中的相同代码(例如,添加一本新书或添加该书的新作者)工作正常,它将所有内容添加到数据库中并将我发送到另一个页面。但是,如果我注册此人并单击“提交”,它总是显示 400 - 错误请求错误。请帮我。我写错了什么?

这是我的 Controller (不适用于注册簿的注册部分(不重定向到注册簿并且不将数据添加到数据库中)):

@Controller
    public class HelloController {
        private static final Logger logger = Logger.getLogger(HelloController.class.getName());
        @Autowired
        @Qualifier("author")
        private AuthorzDAO authorzDAO;
        @Autowired
        @Qualifier("book")
        private BooksDAO booksDAO;
        @Autowired
        @Qualifier("borrow")
        private BorrowsDAO borrowsDAO;
        @Autowired
        @Qualifier("person")
        private PersonDAO personDAO;

        @RequestMapping(value = "/",method = RequestMethod.GET)
        public ModelAndView printHello() {
            return new ModelAndView("hello", "command", new LoginPerson());
        }

        @RequestMapping(value = "/",method = RequestMethod.POST)
        public String login(@ModelAttribute("SpringWeb")LoginPerson person, ModelMap model, HttpServletRequest request) {
            model.addAttribute("info", personDAO.getInfromStudent(person.getEmail(), person.getPassword()));
            model.addAttribute("takenbook", person.getEmail());
            if (person.getEmail().equals("admin@admin.com") && person.getPassword().equals("admin")) {
                logger.warning("AAAAA");
                logger.warning(person.getEmail());
                return "admin";
            } else if(personDAO.checkPerson(person.getEmail(), person.getPassword()) == true){
                logger.warning(personDAO.checkPerson(person.getEmail(), person.getPassword()).toString());
                logger.warning("BBBBB");
                logger.warning(person.getPassword());
                return "personinfo";
            } else {
                return new ResponseStatusException().error();
            }
        }

        @RequestMapping(value = "/registration", method = RequestMethod.GET)
        public ModelAndView registration() {
            return new ModelAndView("registration", "person", new Person());
        }

        @RequestMapping(value = "/registration", method = RequestMethod.POST)
        public String register(@ModelAttribute("person") Person person) {
            logger.warning("Hello");
            logger.warning(person.toString());
            personDAO.connectPerson(person);
            return "redirect:/registerbook";
        }

        @RequestMapping(value = "/registerbook", method = RequestMethod.GET)
        public ModelAndView registerbook() {
            //model.addAttribute("newborrow", new Borrows());
            return new ModelAndView("registerbook", "newborrow", new Borrows());
        }

        @RequestMapping(value = "/registerbook", method = RequestMethod.POST)
        public String regbook(@ModelAttribute("newborrow") Borrows borrows, ModelMap model) {
            logger.warning(String.valueOf(borrows.getId()));
            model.addAttribute("borrowid", borrows.getId());
            model.addAttribute("personid", borrows.getStudentid());
            model.addAttribute("bookid", borrows.getBookid());
            Date today = new Date();
            Calendar cal = new GregorianCalendar();
            cal.setTime(today);
            cal.add(Calendar.DAY_OF_MONTH, -30);
            Date today30 = cal.getTime();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Timestamp todays30 = Timestamp.valueOf(dateFormat.format(today30));
            Timestamp todayy = Timestamp.valueOf(dateFormat.format(today));
            borrows.setTakendate(todayy);
            borrows.setBroughtdate(todays30);
            borrowsDAO.insertBorrow(borrows);
            return "hello";
        }

        @RequestMapping(value = "/addauth", method = RequestMethod.GET)
        public ModelAndView addauth() {
            return new ModelAndView("addauthbooks", "adding", new Authorz());
        }

        @RequestMapping(value = "/example", method = RequestMethod.POST)
        public String addingauthor(@ModelAttribute Authorz authorz, ModelMap model) {
            model.addAttribute("id_author", authorz.getAuthorid());
            model.addAttribute("fname_author", authorz.getName());
            model.addAttribute("lname_author", authorz.getSurname());
            logger.warning(String.valueOf(authorz.getAuthorid()));
            logger.warning(authorz.getName());
            logger.warning(authorz.getSurname());
            authorzDAO.insertAuthorz(authorz);
            return "example";
        }

        @RequestMapping(value = "/addbooks", method = RequestMethod.GET)
        public ModelAndView addbook() {
            return new ModelAndView("addbook", "addingbook", new Books());
        }

        @RequestMapping(value = "/admin", method = RequestMethod.POST)
        public String addingbook(@ModelAttribute Books books, ModelMap model) {
            model.addAttribute("id", books.getId());
            model.addAttribute("name", books.getName());
            model.addAttribute("pagecount", books.getPagecount());
            model.addAttribute("point", books.getPoint());
            model.addAttribute("authorid", books.getAuthorid());
            model.addAttribute("typeid", books.getTypeid());
            model.addAttribute("fragment", books.getFragment());
            logger.warning(String.valueOf(books.getId()));
            logger.warning(books.getName());
            logger.warning(String.valueOf(books.getPagecount()));
            booksDAO.insertBook(books);
            return "admin";
        }

        @RequestMapping(value = "/deleteauth", method = RequestMethod.GET)
        public ModelAndView deleteauthbooks() {
            return new ModelAndView("deleteauthbooks", "deletingauthor", new Authorz());
        }

        @RequestMapping(value = "/admins", method = RequestMethod.POST)
        public String deleteresult(@ModelAttribute Authorz authorz, ModelMap model) {
            model.addAttribute("id", authorz.getAuthorid());
            model.addAttribute("name", authorz.getName());
            model.addAttribute("surname", authorz.getSurname());
            authorzDAO.delete_book(authorz.getSurname());
            return "admin";
        }

        @RequestMapping(value = "/deletebooks", method = RequestMethod.GET)
        public ModelAndView deletebook() {
            return new ModelAndView("deletebooks", "deletingbook", new Books());
        }

        @RequestMapping(value = "/nadmin", method = RequestMethod.POST)
        public String deletebookresult(@ModelAttribute Books books, ModelMap model) {
            model.addAttribute("id", books.getId());
            model.addAttribute("name", books.getName());
            model.addAttribute("pagecount", books.getPagecount());
            model.addAttribute("point", books.getPoint());
            model.addAttribute("authid", books.getAuthorid());
            model.addAttribute("typeid", books.getTypeid());
            booksDAO.delete_book(books.getName());
            return "admin";
        }

        @RequestMapping(value = "/borrow", method = RequestMethod.GET)
        public ModelAndView borrows() {
            return new ModelAndView("borrow", "borrowing", new LoginPerson());
        }

        @RequestMapping(value = "/res", method = RequestMethod.POST)
        public String borrow(@ModelAttribute LoginPerson borrows, ModelMap model) {
            logger.warning(borrows.getEmail());
            List list_borrows = personDAO.searchStudent(borrows.getEmail());
            logger.warning(list_borrows.toString());
            model.addAttribute("borrow", list_borrows);
            return "result";
        }

        @RequestMapping(value = "/changebook", method = RequestMethod.GET)
        public ModelAndView change() {
            return new ModelAndView("changebook", "changing", new Person());
        }

        @RequestMapping(value = "/changebook", method = RequestMethod.POST)
        public String changebook(@ModelAttribute("changebook") Person point, ModelMap model, HttpServletRequest request) {
            model.addAttribute("point", point.getPoint());
            model.addAttribute("email", point.getEmail());
            logger.warning("Upper");
            logger.warning(String.valueOf(point.getPoint()));
            logger.warning(point.getEmail());
            logger.warning(request.getParameter("email"));
            if(point.getPoint() != null && request.getParameter("email") != null) {
                logger.warning("It works!!!");
                personDAO.changeBook(point.getPoint(), request.getParameter("email"));
            }
            logger.warning("Down");
            return "changebook";
        }
    }

这是我的注册jsp:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: lado
  Date: 2019-05-19
  Time: 17:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Registration</title>
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" id="bootstrap-css">
    <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<center><h2>Person Information</h2></center>
<%--<form:form method = "post" action = "/springlab_war_exploded/admin" modelAttribute="person">--%>
<form:form method ="post" modelAttribute="person">
    <fieldset>
        <center>
            <div id="legend">
                <legend class="">Registration</legend>
            </div>
        </center>
        <center>
            <div class="control-group">
                <!-- id -->
                <label class="control-label"  for="id">Id:</label>
                <div class="controls">
                    <input type="number" id="id" name="id" placeholder="" class="input-xlarge">
                    <p class="help-block">Id can contain only numbers</p>
                </div>
            </div>

            <div class="control-group">
                <!-- name -->
                <label class="control-label"  for="name">First name:</label>
                <div class="controls">
                    <input type="text" id="name" name="name" placeholder="" class="input-xlarge">
                    <p class="help-block">First name can contain any letters or numbers, without spaces</p>
                </div>
            </div>

            <div class="control-group">
                <!-- surname -->
                <label class="control-label"  for="surname">Last name:</label>
                <div class="controls">
                    <input type="text" id="surname" name="surname" placeholder="" class="input-xlarge">
                    <p class="help-block">Last name can contain any letters or numbers, without spaces</p>
                </div>
            </div>

            <div class="control-group">
                <!-- E-mail -->
                <label class="control-label" for="email">Email:</label>
                <div class="controls">
                    <input type="email" id="email" name="email" placeholder="" class="input-xlarge">
                    <p class="help-block">Please provide your Email</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Password-->
                <label class="control-label" for="pass">Password:</label>
                <div class="controls">
                    <input type="password" id="pass" name="pass" placeholder="" class="input-xlarge">
                    <p class="help-block">Password should be at least 4 characters</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Date -->
                <label class="control-label"  for="birthdate">Date:</label>
                <div class="controls">
                    <input type="datetime" id="birthdate" name="birthdate" placeholder="" class="input-xlarge">
                    <p class="help-block">Please enter your birthdate</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Sex -->
                <label class="control-label"  for="gender">Sex:</label>
                <div class="controls">
                    <input type="text" id="gender" name="gender" placeholder="" class="input-xlarge">
                    <p class="help-block">Please enter your gender only M or F</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Class -->
                <label class="control-label"  for="job">Job:</label>
                <div class="controls">
                    <input type="text" id="job" name="job" placeholder="" class="input-xlarge">
                    <p class="help-block">Job can contain any letters or numbers, without spaces</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Point -->
                <label class="control-label"  for="point">Point:</label>
                <div class="controls">
                    <input type="number" id="point" name="point" placeholder="" class="input-xlarge">
                    <p class="help-block">Point can contain only numbers</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Phone number -->
                <label class="control-label"  for="phonenumber">Phone number:</label>
                <div class="controls">
                    <input type="tel" id="phonenumber" name="phonenumber" placeholder="" class="input-xlarge">
                    <p class="help-block">Please enter your phone number</p>
                </div>
            </div>

            <div class="control-group">
                <!-- Button -->
                <div class="controls">
                    <button class="btn btn-success" name="submit" value="submit">Next</button>
                </div>
            </div>
        </center>
    </fieldset>
</form:form>
</body>
</html>

还有我的jsp注册簿

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--
  Created by IntelliJ IDEA.
  User: lado
  Date: 2019-06-02
  Time: 12:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Register Book</title>
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" id="bootstrap-css">
    <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<%--<form:form class="form-horizontal" action='/springlab_war_exploded/login' method="post">--%>
<form:form class="form-horizontal" action="/springlab_war_exploded/login" method="post" modelAttribute="newborrow">
    <fieldset>
        <div id="legend">
            <legend class="">Register Book</legend>
        </div>

        <div class="control-group">
            <!-- id -->
            <%--<label class="control-label"  for="borrowid">Borrow Id:</label>--%>
            <div class="controls">
                <form:label path="id">Borrow Id:</form:label>
                <form:input path="id"/>
                <%--<input type="number" id="borrowid" name="borrowid" placeholder="" class="input-xlarge">--%>
                <p class="help-block">Enter borrow id(it is your id)</p>
            </div>
        </div>

        <div class="control-group">
            <!-- name -->
            <%--<label class="control-label"  for="personid">Person Id:</label>--%>
            <div class="controls">
                <form:label path="studentid">Person Id:</form:label>
                <form:input path="studentid"/>
                <%--<input type="number" id="personid" name="personid" placeholder="" class="input-xlarge">--%>
                <p class="help-block">Eneter person id(it is your id)</p>
            </div>
        </div>

        <div class="control-group">
            <!-- surname -->
            <%--<label class="control-label"  for="bookid">Book Id:</label>--%>
            <div class="controls">
                <form:label path="bookid">Book Id:</form:label>
                <form:input path="bookid"/>
                <%--<input type="number" id="bookid" name="bookid" placeholder="" class="input-xlarge">--%>
                <p class="help-block">Enter book id</p>
            </div>
        </div>

        <div class="control-group">
            <!-- Button -->
            <div class="controls">
                <button class="btn btn-success" name="submit" value="submit">Submit</button>
            </div>
        </div>
    </fieldset>
</form:form>
</body>
</html>

最佳答案

重定向或转发请求时不需要“/”。 你可以尝试“redirect:registerbook”;

关于java - Spring MVC 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498021/

相关文章:

java - 无法使用 Spring-MVC 框架定位文件

java - JPA/Spring Roo : is there a destructor event called when an entity is removed from the persistent store?

java - 使用 Spring Web MVC validator 类的服务器端验证

java - Junit 5.5.1 和 5.5.2 突然无法运行测试 : "Process finished with exit code -1"; 5. 6.0-RC1 缺少类

java - 获取 SQLite 只读 C3P0 ComboPooledDataSource

java - 比较 xml 对象 java

java - 无法将 spring jpa 与 Oracle 连接

java - Spring 安全 : enable/disable CSRF by client type (browser/non-browser )

java - Spring - 根据 bean 验证 Controller 内的输入

java - 如何将类中的所有信息存储到单个文本文件中?