在我的应用程序中,我使用 List<String>
作为选择框的模型。每个选项字符串末尾都包含一个换行符。
选项显示正常,但 Tapestry 似乎在渲染选项之前删除了换行符,然后在提交时它无法将删除的字符串与选项列表进行匹配,选项列表仍然包含换行符。
因此,尽管该属性已经具有非空值,但我的选择框始终会显示选中的空白选项。
最佳答案
您尚未提供model
参数,因此 Tapestry 无法知道可用值。型号必须是SelectModel
实例。有几个选项可用于创建 SelectModel
.
- 提供一个逗号分隔的字符串,并让 Tapestry 的 TypeCoercer 创建适当的 SelectModel。
- 提供 java.util.List 并让 Tapestry 的 TypeCoercer 创建适当的 SelectModel。
- 提供 java.util.Map 并让 Tapestry 的 TypeCoercer 创建适当的 SelectModel。
- @Inject SelectModelFactory并调用
create(List<?> objects, String labelProperty)
使用 bean 属性作为每个模型的标签从列表创建 SelectModel。 - 创建自定义
SelectModel
你自己。
http://tapestry.apache.org/5.3.7/apidocs/org/apache/tapestry5/corelib/components/Select.html http://tapestry.apache.org/5.3.7/apidocs/org/apache/tapestry5/SelectModel.html http://tapestry.apache.org/5.3.7/apidocs/org/apache/tapestry5/services/SelectModelFactory.html http://tapestry.apache.org/typecoercer-service.html
关于java - 当选项字符串包含换行符时,为什么 Tapestry 的选择组件不显示我选择的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537780/