当前位置: 首页 > 知识库问答 >
问题:

如何从thymeleaf获得输入而不产生歧义处理程序错误?

万俟承望
2023-03-14

我试图从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>
@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个答案

缪征
2023-03-14

在声明控制器之前,将RequestMethod设置为GET Everywhere。在方法上再次设置它们,这是不明确的。

删除第2行中的@requestmapping(method=requestmethod.get)。这应该可以解决所提到的问题。

 类似资料:
  • 我用Spring靴。我创建了这两个方法: 当我尝试登录web应用程序时,我得到: java.lang.IllegalStateException:映射到HTTP路径“HTTP://localhost:8080/rest/user/bsmith”的处理程序方法不明确:{public com.zenar.dto.userappdto com.zenar.controller.usercontrolle

  • 当我在1到9之间选择一个数字并在控制台中输入一个数字时,该方法会工作并进行正确的移动。但我的问题是如何避免当我输入一个字母而不是一个数字时,程序就崩溃了。

  • 我正试图通过Jison为ChucK语言生成JavaScript解析器,并且已经有了一个良好的开端,只是生成的解析器无法处理语言中的歧义。最初的ChucK编译器是由Bison生成的,它必须能够以某种方式解决这些歧义。 出于这个问题的目的,我已经将这个问题简化为一个仅表示一种歧义的解释语法。作为参考,我列出了所有相关文件(包括生成的解析器)的要点。项目结构如下: 语言/词汇。js:lexer 语法本身

  • 这里有一个非常简单的java程序,我声明任何有7个元素的数组,输入前六个,将第四到第六个元素移动到第五到第七个位置,并获得第四个空位置的值: 然而,当所有数组元素都打印出来时,第六和第七个位置是0,我不知道为什么。原因和修复将不胜感激。注意:我不能使用任何数组方法,必须保持非常简单。 输入:1,2,3,4,5,6;然后1; 期望输出:1,2,3,4,5,1,6; 实际产出:1,2,3,4,1,0,

  • 问题内容: 我在Netbeans中有一个小型Java测试应用程序,该类从中读取输入。如何打开可在其中输入输入的窗口?(我在Windows 7上使用NB 6.7.1)。 问题答案: 可能并不明显,但是在Netbeans中,如果您的主线程正在等待输入,则底部的“输出”选项卡也会接受输入。只需在最后一个输出行下键入,然后按Enter。换句话说,“输出”选项卡与控制台窗口相同。