我应该将jsp文件保存在哪里,以便可以将Name.java类用于表单支持对象?

时间:2018-06-21 12:27:12

标签: java forms spring-mvc jsp

Project structure

我在com.form.model包中有一个Name.java,它具有两个String实例变量first_name和last_name。我想要一个采用这两个变量作为输入的jsp表单。我究竟在哪里将Register.jsp文件保留在项目目录中,以便可以使用Name.java映射表单?

1 个答案:

答案 0 :(得分:0)

这是一个很好的模式。将所有.jsp文件放在一个名为/WEB-INF/view/的文件夹中,并创建一个名为/form的子目录。在我的application.properties(我使用gradle)中,指定从以下位置提供JSP服务的位置:

spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

因此,假设您有一个JSP表单:

/WEB-INF/view/form/register.jsp

因此,在控制器(我假设您正在使用Spring)中,您可以编写:

/**
 * Serve the form
 */
@GetMapping("/register")
ModelAndView form() {

    return new ModelAndView("/form/register", "name", new Name())
}

/**
 * Handle submitted form
 */
@PostMapping("/register")
ModelAndView formCreate(@ModelAttribute Name name, BindingResult result, ModelMap model) {
    if (result.hasErrors()) {

        // Handle form errors
    }

    // Add stuff to ModelMap or other processing
    // Return the form

    return new ModelAndView("/form/register", "name", name)
}