Thymeleaf Spring th:字段验证表单时出错

时间:2016-10-30 22:39:57

标签: java spring forms maven thymeleaf

今天我想为名为" Videoshop"的应用程序制作一个searchfunction / searchform。

所以我的想法是一个小工具,可以帮助用户更轻松地获得结果,而无需搜索/滚动(例如Last Action Hero - >如果我们输入" Hero",它会告诉我们最后行动英雄)

使用Spring(-Boot)v1.4.1; Maven 4.0.0和Jdk 1.8。 我已经在stackoverflow上阅读了其他问题,但是他们的问题与我的不同。令人困惑的部分是我的朋友得到了同样的错误(他使用MAC OSX和我WIN10,所以我猜它不是操作系统,注意到JVM是独立形式的平台)。

现在,我的dvdCatalog.html是SearchForm所在的位置:           

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="../resources/css/style.css" />
    <title th:text="${title}">Katalog</title>
</head>
<body>
<div class="all">
    <header>
        <h1 th:text="${title}">Katalog</h1>
    </header>
    <nav th:include="navigation :: navigation">
    </nav>
    <div class="content">
        <div class="search">
                <font color="black">Geben Sie den Suchbegriff unten ein.</font>
                <form action="#" th:action="@{/searchResult}" th:object="${SearchForm}"  method="post">
                    <div class="input">
                        <input type="text" value="Suchbegriff" th:field="*{searchtext}"/>
                        <p th:if="${#fields.hasErrors('searchtext')}" th:errors="*{searchtext}">Falsche Eingabe</p>
                        <input type="submit" class="btn btn-default" value="Senden"  />
                    </div>
                </form>
        </div>

我得到的错误是&#34;执行处理器&#39; org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor&#39; (discCatalog:30)&#34 ;.

因此,如果删除th:字段,页面可以正常工作,但后来又出现了另一个错误。我验证的东西是错误的。 这里是CatalogController.java的exerpt:

@RequestMapping("/searchResult")
public String searchResult(@ModelAttribute("SearchForm") @Valid SearchForm SearchForm, Model model) {
    String query = SearchForm.getSearchtext();
    model.addAttribute("catalog", videoCatalog.findByName(SearchForm.getSearchtext()));

    return "discCatalog";
}

最后是SearchForm.java:

package videoshop;

import javax.validation.constraints.NotNull;

 public class SearchForm {
 @NotNull
  private String searchtext;

  public String getSearchtext(){
    return this.searchtext;
    }

  public void setSearchtext(String searchtext){
    this.searchtext = searchtext;
    }

 }

所以我认为SearchForm.java可能很容易/不好我不知道,这就是我得到错误的原因。 另一点是,如果我删除th:字段,我得到的错误是SearchForm.searchtext不能为null,验证错误。 如果你能帮助我,我会很高兴的!

0 个答案:

没有答案