JSF管理多元化的财产

问题描述 投票:1回答:1

正如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 []。

jsf annotations managed-bean
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.