JSF管理多元化的财产

时间:2011-11-09 15:17:02

标签: jsf annotations managed-bean

正如BalusC对this question的回答所建议的那样,我想创建一个像这样的托管属性:

@ManagedProperty("#{paramValues.freetext}")
private String[] ftValues;

public String[] getFtValues(){ 
    return ftValues;
}

public void setFtValues(String[] values){
    ftValues = values;
}

在我的项目中,每个托管bean声明和设置都在faces-config.xml文件中完成。按照建议将注释放在代码中,不会给我带来任何结果。 ftValues始终为null,即使我有一个或多个<input name="freetext"> 是否可能不考虑注释,因为主要配置技术使用XML文件?

如何将ManagedProperty声明放入faces-config.xml?我尝试添加

<managed-property>
    <property-name>ftValues</property-name>
    <property-class>java.lang.String[]</property-class>
    <value>#{paramValues.freetext}</value>
</managed-property>

在相应的托管bean部分中,但它崩溃时出现此错误

  

无法找到托管bean myBean的Bean或属性类java.lang.String []。

1 个答案:

答案 0 :(得分:2)

实际上,只要在faces-config.xml中声明bean,就会忽略注释。如果从faces-config.xml中删除bean实际上不是一个不明原因的选项,那么您需要删除<property-class>来解决问题。 JSF可以完美地自己解决它。