JSF管理多元化的财产

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSF管理多元化的财产相关的知识,希望对你有一定的参考价值。

正如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可以完美地自己解决它。

以上是关于JSF管理多元化的财产的主要内容,如果未能解决你的问题,请参考以下文章

JSF2 commandButton 操作未在更新的片段中调用

JSF:-DataType 和 Action Listener 的问题

JSF 和 HTTP 请求 [重复]

JSF 2.0 和 selectManyListbox 中的生命周期问题

部署 JSF 复合组件以供共享使用

JSF(容器管理安全)组角色