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