根据BalusC对这个问题的回答,我想创建一个像这样的托管属性:
@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或属性类java.lang。无法找到管理bean myBean的字符串[]。
事实上,当您在faces-config.xml
中声明bean时,注释将被忽略。如果由于某些不清楚的原因不能从faces-config.xml
中删除bean,那么您需要删除<property-class>
来解决问题。JSF完全可以自己计算出来。