如何在没有Ambigous Handler错误的情况下从百里香获得输入?

时间:2016-12-01 19:41:13

标签: java spring-boot thymeleaf

我正试图从百万美元的输入中获取一个值到我的java类中。

来自百里香的简单脚本

  <h1>Form</h1>
<form action="#" th:action="@{/index}" th:object="${emails}" method="post">
    <p>Enter Emails: <input type="text" th:field="*{email}" /></p>
    <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>

我如何能够将电子邮件检索到我的java类中?

控制器

@Controller
@RequestMapping(method = RequestMethod.GET)
public class IndexController {
@RequestMapping(value = "/index", method = RequestMethod.GET)
public ModelAndView getdata() throws IOException {
ModelAndView model = new ModelAndView("index");
    model.addObject("emails", new MailModel());
        return model;
}

@PostMapping("/index")
    public String emailSubmit(@ModelAttribute MailModel emails) {
        System.out.println(emails.getEmail());

        return "index";
    }

错误消息

Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/': {public org.springframework.web.servlet.ModelAndView com.spring.web.controller.IndexController.getdata() throws java.io.IOException, public java.lang.String com.spring.web.controller.IndexController.emailSumbit(com.spring.web.model.MailModel)}

我的应用程序是使用Springboot,Java和Thymeleaf创建的。我究竟做错了什么? ModelandView可能无法与PostMapping一起使用吗?我也跟着https://spring.io/guides/gs/handling-form-submission/,我得到了那个样本,但是当我试图遵循逻辑并实现我的项目时。它不起作用。

1 个答案:

答案 0 :(得分:1)

在声明控制器之前,您将RequestMethod设置为GET无处不在。关于你再次设置它们的方法,这是不明确的。

删除第2行中的@RequestMapping(method = RequestMethod.GET)。这应解决上述问题。