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

Spring、Thymleaf和字符串列表

岳浩宕
2023-03-14

好吧,我是一个湿漉漉的后来居上的Spring和百里香。我正在尝试做一些简单的事情,这应该是一个无脑的。但我不能让它工作。简单的问题是-如何在网页中显示字符串列表?

我有以下型号

import java.util.List;
public class TestModel {

    private List<String> list = null;
    private String content;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public List<String> getList() { return list; }

    public void setList(final List<String> list) {
        this.list = list;
    }
}

我的网页包含以下内容:

<div th:if="${greeting.list != null}">
    <h1>Result</h1>
    <ul>
    <th:block th:object="${greeting}" th:each="item : ${list}">
     <li th:text="${item.name}">Item description here...</li>
    </th:block>
    </ul>
</div>

我在“项目”中添加了“. name”只是因为我发现了几个例子,其中他们有一个字符串列表并做了类似的事情。但是他们在对象上有“. name”。

但它仍然不起作用。无序列表最终为空。一、 e.无序标记内没有任何列表项。

我做错了什么?指针欣然接受。

共有2个答案

龚沛
2023-03-14
<table th:object="${userList}" id="userTable" border="1">
    <tr th:each="user :${userList}">
        <td  th:text="${user.getName()}"></td>
        <td  th:text="${user.getEmail()}"></td>
    </tr>
</table>

另一个使用表和对象的示例。可能对其他人有用。

袁建木
2023-03-14

因为并没有填充模型的例子,我想你们应该把一些字符串放进像这样的TestModel的列表字段中。

TestModel greeting= new TestModel();
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
model.addAttribute("greeting", greeting);

然后在Thymeleaf模板示例中还有更多错误。

  1. 如果您通过th: ject使用对象选择,您必须首先使用asterix*来访问对象属性。Asterisk语法评估选定对象上的表达式而不是上下文变量映射。
  2. 对象选择只影响DOM中的子节点。
  3. 在您的示例中,您希望遍历字符串列表(List

您必须以一种方式修复Thymeleaf模板-参见示例。

根本没有对象选择

<div th:if="${greeting.list != null}">
    <h1>Result</h1>
    <ul>
       <li th:each="item : ${greeting.list}" th:text="${item}">Item description here...</li>
    </ul>
</div>

正确的对象选择

<div th:if="${greeting.list != null}">
    <h1>Result</h1>
    <ul>
    <th:block th:object="${greeting}">
       <li th:each="item : *{list}" th:text="${item}">Item description here...</li>
    </th:block>
    </ul>
</div>

 类似资料:
  • 在“基本类型”一章中,介绍了字符串,以及使用is_binary/1函数检查它: iex> string = "hello" "hello" iex> is_binary string true 本章将学习理解:二进制串(binaries)是个啥,它怎么和字符串(strings)扯上关系的; 以及用单引号包裹的值'like this'是啥意思。 UTF-8和Unicode 字符串是UTF-8编码的二

  • Then Peter came to him and said,"Lord, how many times must I forgive my brother who sins against me? As many as seven times?" Jesus said to him,"Not seven times, I tell you, but seventy-seven times?"

  • 字符串是一系列的字符,比如说 "hello, world"或者 "albatross"。Swift 的字符串用String类型来表示。String的内容可以通过各种方法来访问到,包括作为Character值的集合。 Swift 的 String  和 Character  类型提供了一种快速的符合 Unicode 的方式操作你的代码。字符串的创建和修改语法非常轻量易读,使用与 C 类似的字符串字面

  • 本页包含内容: 字符串字面量 初始化空字符串 字符串可变性 字符串是值类型 使用字符 计算字符数量 连接字符串和字符 字符串插值 比较字符串 字符串大小写 Unicode String是例如"hello, world","海贼王"这样的有序的Character(字符)类型的值的集合,通过String类型来表示。 Swift 的String和Character类型提供了一个快速的,兼容 Unicod

  • 我要做的是打印输入的反向数字。输入=“1 3 4 2”输出=“2 4 3 1” 我想知道为什么我的代码显示此错误: 错误:< code > string . join(ar)type错误:序列项0:预期的str实例,找到int 如果我将map参数从int改为str,它不会显示任何结果。

  • 问题内容: 以下语句, 产生输出。 但是,以下内容 产生。 区别在哪里? 问题答案: 您会因为操作符优先级和字符串转换的结合而看到此行为。 JLS 15.18.1 指出: 如果只有一个操作数表达式的类型为String,则对另一操作数执行字符串转换(第5.1.11节),以在运行时生成字符串。 因此,第一个表达式中的右侧操作数将隐式转换为字符串: 但是对于第二个表达式,必须将复合赋值运算符与一起考虑。