当选项字符串包含换行符时,为什么Tapestry的选择组件不显示我选择的值?

时间:2013-12-12 07:45:27

标签: java tapestry

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

选项显示正常,但似乎Tapestry在呈现选项之前剥离换行符,然后在提交时它无法将已剥离的字符串与选项列表匹配,后者仍包含换行符。

出于这个原因,我的选择框总是会选择空白选项,尽管该属性已经具有非空值。

1 个答案:

答案 0 :(得分:1)

您尚未提供model参数,因此tapestry无法知道可用值。该模型必须是SelectModel实例。有一些选项可用于创建SelectModel

  1. 提供逗号分隔的String,让tapestry的TypeCoercer创建一个合适的SelectModel。
  2. 提供java.util.List并让tapestry的TypeCoercer创建一个合适的SelectModel。
  3. 提供java.util.Map,让tapestry的TypeCoercer创建一个合适的SelectModel。
  4. @Inject SelectModelFactory并调用create(List<?> objects, String labelProperty)从List创建一个SelectModel,使用bean属性作为每个属性的标签。
  5. 自己创建自定义SelectModel
  6. 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