【问题标题】:Insert jsp form to database using spring boot使用spring boot将jsp表单插入数据库
【发布时间】:2018-01-13 09:55:03
【问题描述】:

我是 Spring Boot 的初学者,我首先创建一个将数据发送到数据库的联系表单。这是表格:

<form:form method="POST" id="contactform" modelAttribute="message">
            <div class="form">
                <div class="six columns noleftmargin">
                <label name="name">Name</label>
                <form:input path="name" type="text"  class="smoothborder" placeholder="Your name *"/>
                </div>
                <div class="six columns">
                <label name="email">E-mail address</label>
                <form:input path="email" type="text"  class="smoothborder" placeholder="Your e-mail address *"/>
                </div>
                <label name="comment">Message</label>
                <form:textarea path="comment" class="smoothborder ctextarea" rows="14" placeholder="Message, feedback, comments *"></form:textarea>
                <input type="submit" id="submit" class="readmore" value="Submit"/>
            </div>
            </form:form>

这是我的联系人控制器:

 @Autowired
  private MessageRepository messageRepository ;

  @RequestMapping(value= "/newmessage", method = RequestMethod.GET)
  public String newMessage(ModelMap model) {
     Message message = new Message();
     model.addAttribute("message", message);
      return  ("/contact");
    }

  @RequestMapping(value="/newmessage",method=RequestMethod.POST)
  public String saveMessage( Message message, BindingResult result, ModelMap model)
  {

      if (result.hasErrors()) {
            return "/contact";
        }

      messageRepository.save(message);
      model.addAttribute("success", "Message " + message.getName() + " "+ message.getEmail() + " "+ message.getComment()+ " registered successfully");
        //return "success";
        return "/homepage";

文件夹结构

【问题讨论】:

    标签: spring jsp spring-mvc spring-boot


    【解决方案1】:

    您需要设置表单的操作。如果您想在提交表单时点击/newmessage,那么您需要进行如下更改:

    <form:form method="POST" id="contactform" action="/newmessage" modelAttribute="message">
         <!-- The elements of the form -->
    </form:form>
    

    另外,您需要将modelAttribute 添加到您的控制器方法中。您应该只返回jsp 页面的名称。如果您的页面名称是homepage.jsp,那么您应该只从您的控制器方法中返回homepage。当然,homepage.jsp 文件需要在WEB-INF 文件夹中。

    @RequestMapping(value="/newmessage",method=RequestMethod.POST)
    public String saveMessage(@ModelAttribute("message") Message message, BindingResult result, ModelMap model) {
        // Rest of the code
    
        return "homepage";
    }
    

    【讨论】:

    • 很抱歉,同样的错误仍然存​​在,我的视图放置在 src/main/web 应用程序中,因为它在那里搜索视图而不是资源/模板。我添加了所有 jsp 依赖项
    • 你的视图应该放在`src/main/webapp/WEB-INF`文件夹中
    • 我正在使用sts工具,我创建了新的spring starter项目,默认情况下webapp下没有WEB-INF我应该自己添加吗?(对不起我的问题我是初学者)
    • 您是否使用默认的弹簧格式。请您分享servlet.xml 和spring 配置java 文件。您可以共享文件夹结构
    • 你的项目没有web.xml文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2021-02-25
    • 1970-01-01
    相关资源
    最近更新 更多