1

正如 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 myBean 的 Bean 或属性类 java.lang.String[]。

4

1 回答 1

2

实际上,只要您在 中声明 bean,就会忽略注释faces-config.xmlfaces-config.xml如果出于某种不清楚的原因确实不能从中删除 bean ,那么您需要删除<property-class>以解决问题。JSF 可以自己完美地计算出来。

于 2011-11-09T15:21:42.473 回答