0

私のJSFページには次のものがあります。

<h:outputText value="#{entity[column.key]}" />

私のエニティビーン(シンプルバージョン):

public class Entity implements Serializable {
private int id;
private Entity entity;

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}

public Entity getEntity() {
    return this.entity;
}
public void setEntity(Entity entity) {
    this.entity = entity;
}
}

私の[column.key]変数が値「id」として保持されている場合、エンティティのid属性が表示されます。[column.key] 変数が値「entity.id」として保持されている場合、エラーが発生します。

/WEB-INF/flows/parametersPage/parametersPage.xhtml @51,66 value="#{entity[column.key]}": プロパティ 'entity.id' がタイプ eu.acsone.agc.db.entity で見つかりません。実在物

デバッグすると、エンティティが Bean に設定されていることがわかります。つまり、null ではありません。

皆さんが助けてくれることを願っています、ありがとう!

私が使用している: * Mojarra 2.1.7 * Primefaces 3.3.1

4

1 に答える 1

2

その原因は、プロパティを持っていないことです (これは実際には Java では違法です - ドット区切り文字は許可されていません)。

private int entity.id; //its not even legal

あなたの豆で

このようにBeanにアクセスしようとするとvalue="#{entity[variableThatHoldSomeString]}":

JSF は Bean 内のプロパティを探しSomeStringます...そのため、このエラーが発生しています。このようなことを試してください。

value="#{entity.entity[column.key]}":

[column.key]変数は値「id」を保持します。

(ところで、同じタイプのネストされたプロパティは奇妙に見えます)

于 2012-08-23T18:32:20.230 に答える