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

使用thymeleaf向spring控制器传递参数

阮飞翔
2023-03-14

我在使用thymeleaf 3将参数从html传递到spring mvc 4控制器时遇到了麻烦。

// Handler method for inserting currency:
@RequestMapping(value = "/saveCurrency", method = RequestMethod.POST)
public ModelAndView saveCurrency(@ModelAttribute("currency") Currency currency, BindingResult bindingResult, Model model)
{
    model.addAttribute("currency", currency);
    currDAO.insert(currency);

    return new ModelAndView("redirect:/listCurr");
}
<form action="/saveCurrency" th:action="@{/saveCurrency}" th:object="${currency}" th:method="post">
    <input id="nameTB" type="text" th:field="*{name}" class="form-control" maxlength="3" style="text-transform:uppercase" />
    ...
</form>

我还有一个类Currency,它带有字段“id”和“name”,以及它们的getter和setter。现在使用这段代码,我得到一个错误:

严重:路径为[]的上下文中servlet[dispatcher]的servlet.service()引发异常[请求处理失败;嵌套异常为org.thymeleaf.exceptions.TemplateInputException:模板解析期间出错(模板:“ServletContext resource[/WEB-INF/Views/ListCurr.HTML]”)],其根本原因

java.lang.IllegalStateException:bean名称'currency'的BindingResult和普通目标对象都不能作为请求属性使用

知道我做错了什么吗?

共有1个答案

童花蜂
2023-03-14

问题是前面没有设置model属性。您将需要一些请求映射方法来设置您的模型属性:

@RequestMapping(value = "/currency", method = RequestMethod.GET)
public String currencyPage(Model model) {
    model.addAttribute("currency", new Currency());
    return "listCurr";
}

侧记:在您的方法中,您不需要设置“货币”模型属性。再来一次。此外,您希望在保存货币之前检查bindingresult是否有错误:

if(!bindingResult.hasErrors()) {
    currDAO.insert(currency);
}
 类似资料:
  • 我正在尝试在更改选项后将我的Thymeleaf超文本标记语言中已经提供的List传回控制器。我尝试过隐藏输入,但不幸的是,它还不起作用。 我的表单如下所示(控制器已经提供了“电影”列表) 我的控制器看起来像这样: 期待有人能帮助我!

  • 我这样加载控制器: fxml绑定到MainController.java。有没有一种方法可以传递我需要的用户ID,并在控制器的initialize()方法上访问它?

  • 我对沉香酒很陌生...有人能告诉如何在thymeleaf html和spring控制器之间传递值吗...请为Thymeleaf-Spring-MVC提供好的教程... @requestmapping(value=“/owners”,method=requestmethod.get)公共字符串processFindForm(Owner Owner,BindingResult result,Model

  • 我试图将一个参数传递给我的@RESTController-Spring Boot类。 在@POSTMapping方法中,我想使用自定义Java类的方法来处理接收到的正文并返回响应。 Spring应用程序在应用程序中启动。Java语言控制器对象似乎是隐式创建的。 我已经尝试将构造函数添加到我的RESTController类中。但是我找不到用参数调用该构造函数的方法。 尽管我可以定义第二个构造函数,但

  • 我有使用Springboot和Thymeleaf模板编写的简单Web应用程序。报告控制器从表单接收数据并构建TestPlanReportReportACK对象,该对象作为模型属性添加如下: 我可以在“图表”thymeleaf模板中使用该数据并显示我需要的数据,但我需要在单击按钮时将完全相同的对象发送回控制器,但我得到TestPlanReportACK对象作为设置空值的参数。 以下是我的按钮在图表模

  • 我想通过使用javascript或jquery或不使用javascript或jquery将thymeleaf下拉选择的值传递给spring boot控制器