thymeleaf - 有没有办法传递无法从输入元素中编辑或删除的字符串?

thymeleaf - is there a way to pass a String that can't be edited or removed from an input element?

我需要使用另一个作为其一部分来构建一个字符串 ID。

我知道我可以将 model.addAttribute("parentId", parentId); 传递给页面并显示为

<div>
    <span th:text="${parentId}"/><input id="id" type="text" th:field="${id}" />
</div>

但我希望将其全部放在 <input /> 元素中作为占位符,并使 $[parentId} 文本无法被删除和编辑。

有没有办法只使用 Thymeleaf 和 NO JavaScript?

更新

根据要求,示例如下:

parentId 可以是任何字符串,例如 "abc".

parentId 值将被传递到屏幕并且输入将具有固定值 "abc:",这将允许更改并且任何值都可以插入输入字段,因此结果id 类似于 abc:xpto.

我认为在视图方面不可能做到这一点。 您可以做的是在控制器端管理parentIdid的值。

因此,在使用 span 维护您的视图以显示 parentIdinput 显示 id 的同时,假设您的 input 是在 form 中,在控制器中你可能有这样的东西:

@RequestMapping(value = "/submitId", method = RequestMethod.POST)
public void manageId(String id) {
    id = parentId + id;
    //work with the complete id
}

其中 parentId 是您之前发送到 Model 的同一个变量。

之后,您可以对新的 id 值做任何您需要做的事情,从将值保存到数据库到在另一个视图中显示它。