我有一个Tapestry PropertyModel用于性别。现在,下拉列表只显示男性和女性,因为这些是我模型中唯一的值。我想添加一个“选择一个选项”选项。有没有标准的方法来做到这一点,而不必为我的模型添加假值?我也希望它足够聪明,知道如果需要该字段,他们不能将其设置为“选择一个选项”。
答案 0 :(得分:2)
在Tapestry 5上,您只需设置blankLabel属性。
在Tapestry 4上,更容易将该功能添加到PropertyModel或将其包装在Brian已经提到的LabeledPropertySelectionModel上(您可以在JavaDoc中为您的Tapestry版本查看该类)。
在Tapestry 3上,您必须将该功能添加到模型中,因为版本4中引入了LabeledPropertySelectionModel。
答案 1 :(得分:1)
一种解决方案是使用LabeledPropertySelectionModel来包装真实模型,如:
new LabeledPropertySelectionModel(new GenderModel(), "Choose an Option")
该类的JavaDoc说:
装饰一个底层的IPropertySelectionModel,添加一个初始属性。 label属性和初始属性的值是可配置的。