【问题标题】:Thymeleaf - Input Dynamic List Of StringThymeleaf - 输入字符串的动态列表
【发布时间】:2016-05-23 04:35:00
【问题描述】:

我想添加用户输入字段的动态列表。组合这些不同的输入并将它们作为列表从视图传递给控制器​​。 这是我的域类

public class HTMLPage {

    @Size(min = 3)
    @NotNull
    private List<String> ingredients;
    @Size(min = 5)
    @NotNull
    private List<String> method;
    @Size(min = 3)
    @NotNull
    private String recipeName;
    //getter setters

 }

我对百里香完全陌生。我已经阅读了所有可能的教程。有不同的方法可以迭代列表,但我找不到动态输入字符串列表并将完整的 HTMLPage 对象发送到我的控制器的方法。

【问题讨论】:

    标签: java spring-mvc thymeleaf


    【解决方案1】:

    您需要做的第一件事是为您的页面创建一个控制器。从那里您将信息加载到 spring 中,在您的情况下是列表,在我的情况下,我使用了带有很多不同内容的 ModelMap。

    @RequestMapping(value = "/assessment/", method = RequestMethod.GET)
    public String showPage(ModelMap model, Principal principal) {
        [...]
    
        List<Assessment> list = new ArrayList<Assessment>();
        [...]
        model.addAttribute("assessments", list);
        [...]
        model.addAttribute(REQUEST_VIEW, new Gson().toJson(requestView));
        return "assessment"; //name of your page in spring config
    }
    

    然后把你的配置放到 Spring 和你的 Pom 中。只需使用您配置的名称,即可轻松访问信息。

    <table class="table-row-selected">
        <tbody>
        <div th:each="assessment : ${assessments}" th:remove="tag">
            <tr th:attr="ng-click='selectedAssessment(\''+ ${assessment.getTypeCode()}+'\' , \'' +${assessment.getName()} +'\', \'' +${assessment.isLookUpSaid()} +'\', \'' +${assessment.getLanguages()} +'\');', ng-mouseover='refreshDescription(\''+ ${assessment.getDescription()}+'\')'">
                <td><strong th:text="${assessment.getName()}"></strong></td>
            </tr>
        </div>
        </tbody>
    </table>
    

    【讨论】:

      【解决方案2】:

      其实更多的是Spring binder而不是thymeleaf。每当用户添加一个新的输入,然后通过使用 JavaScript 附加 &lt;input name="ingredients[0]" /&gt; 到表单。之后每次将索引增加 1,因此,下一个追加将是 &lt;input name="ingredients[1]" /&gt;。等等。请参阅此answer 了解更多信息。

      【讨论】:

      • 我实际上是用相同的解决方案自己找到的。但无论如何谢谢:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2018-03-25
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      相关资源
      最近更新 更多