在我的应用程序中,我将List<String>用作选择框的模型。每个选项字符串的末尾都包含一个换行符。

选项显示得很好,但是Tapestry似乎在呈现选项之前先删除了换行符,然后在提交时无法将已剥离的字符串与仍包含换行符的选项列表进行匹配。

因此,尽管属性已经具有非null值,但我的选择框始终带有空白选项。

最佳答案

您没有提供model参数,因此挂毯无法知道可用值。该模型必须是SelectModel实例。有几个创建SelectModel的选项。


提供用逗号分隔的String,并让挂毯的TypeCoercer创建适当的SelectModel。
提供一个java.util.List,让挂毯的TypeCoercer创建一个合适的SelectModel。
提供一个java.util.Map,让挂毯的TypeCoercer创建一个合适的SelectModel。
@Inject SelectModelFactory并调用create(List<?> objects, String labelProperty)以使用bean属性作为每个标签的标签从List创建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

10-06 16:10