如何使用 freemarker 制作下拉列表?

Posted

技术标签:

【中文标题】如何使用 freemarker 制作下拉列表?【英文标题】:How can I make dropdown list with 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! 上的感叹号 - 因为如果类别为空,那么您将看到一个没有选项的选择,这是没有意义的。但这不应该是整个事情不起作用的原因。 【参考方案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";

【讨论】:

以上是关于如何使用 freemarker 制作下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 为表格制作下拉列表过滤器?

如何使用 select2 小部件 yii 制作依赖下拉列表

如何使用mysql和php制作级联下拉列表

下拉框 - 从 Spring MVC 模型/上下文到使用 freemarker 形成

如何制作由文件中的行分隔的每个字符串的下拉列表

如何在yii2中制作下拉列表?