【问题标题】:How can I make dropdown list with freemarker?如何使用 freemarker 制作下拉列表?
【发布时间】:2021-09-03 02:56:58
【问题描述】:

我正在尝试使用 Freemarker 从数据库中获取列表。我想做选择下拉列表,但我不明白我错过了什么。

我这样做了:

<div class="form-group">
<select name="category" class="form-control" required>
    <#list categories! as category>
        <option value="${category.id}">${category.name}</option>
    </#list>
</select>
</div>

我有一个表格,但我没有看到任何选项。

使用 Thymeleaf 我可以做到这一点,但在项目中我想使用 freemarker

<div class="form-group">
    <select th:field="*{category}" class="form-control" required>
        <th:block th:each="category : ${categories}">
        <option th:text="${category.name}" value="${category.id}"/>
        </th:block>
    </select>
</div>

事实上,我需要将这部分从 Thymeleaf “翻译”到 Freemarker,但我不知道如何。

【问题讨论】:

  • Freemarker 代码正确。寻找其他可能的原因。也许您的支持无法正常工作。检查页面源 (Chrome Ctrl+U) - 也许您错过了结束标记或括号。输出一些简单的模板 - 检查 freemarker 是否正常工作。
  • 我唯一要质疑的是categories! 上的感叹号 - 因为如果类别为空,那么您将看到一个没有选项的选择,这是没有意义的。但这不应该是整个事情不起作用的原因。

标签: spring-mvc jsp freemarker


【解决方案1】:

是的,代码片段是正确的,我只是放在了 PostMapping 而不是 GetMapping 中。现在它适用于以下控制器:

@GetMapping("/items")
public String main(Model model) {
    Iterable<Item> items;
    model.addAttribute("items", items);

    List<Category> categories = categoryRepository.findAll();
    model.addAttribute("categories", categories);

    return "items";
}

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2014-03-01
    相关资源
    最近更新 更多