如何在thymeleafth:value中存储dto(Spring, java )

uinbv5nw  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(359)

我和各自的能手和二传手有这个dto。

/**This class encapsulates the attributes of a JSON Schema database object. */ 
public class SchemaDto {

  /**The JSON String representation. */
  private String json;

  /**The note of the schema. */
  private String note;

  /**The date of the schema. */
  private LocalDate date;

...

  /**Returns a unique string representation of the schema. */
  @Override
  public String toString() {
    return date.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")) + " - " + note;
  }
}

在我的html页面上,我想以 <select /> 并让用户按日期和注解选择模式,编辑模式并对其进行处理。日期和注解的组合是唯一的。

<select th:field="*{s1Schema}"
        th:onchange="|setEditorText('s1-editor', '*{s1Schema.json}')|" >
    <option th:each="schema : ${schemas}"
            th:value="${schema}"
            th:text="${schema.toString()}"></option>
</select>

让我再解释一下代码: th:field="*{s1Schema}" :应为 SchemaDto . 我想将其存储在会话中,这样如果正在处理模式,那么选择和编辑器就不会丢失。 th:each="schema : ${schemas}" 属于 SchemaDto ,在哪里 ${schemas} 是一个
List th:value="${schema}" :我想将架构作为 SchemaDto 不管它叫什么 schema.toString() 当传递给 th:field .
我真的需要 SchemaDto . 这个 date 以及 note 用于在选择和 json 应该加载到ace编辑器。

/**
     * Sets the editor text.
     *
     * @param id The editor's id.
     * @param text The text to set.
     */
    const setEditorText = (id, text) => {
        let editor = ace.edit(id);
        editor.setValue(text, 1);
    }

我很高兴能得到任何帮助!:)

4ioopgfo

4ioopgfo1#

虽然我仍然不知道这是否可行,但我现在使用ajax是为了避免重新加载。

相关问题