1
public class SuperUser extends User implements Serializable{
  private static final long serialVersionUID = 1L;

  private String username;

  private String pin;

 //getters and setters
 }

これをマネージドBeanで使用し、このようにfaceletsファイルでアクセスしようとすると

<h:inputText id="firstName" value="#{userManager.superUser.firstName}" required="true" maxlength="30" size="30"/>

例外が発生します

javax.el.PropertyNotFoundException: /superUser/create.xhtml @18,96 value="#{userManager.superUser.firstName}": Target Unreachable

プロパティにアクセスしたい場合、Java Bean を拡張できないということですか?

ありがとう

4

2 に答える 2

3

#{userManager.superUser}が返さnullれたため、それsetFirstName()を呼び出すことができないことを意味します。JSF は、ネストされたオブジェクト プロパティを作成しません。あなたはそれを自分でしなければなりません。

これを修正するには、背後にあるバッキング Bean クラス内で#{userManager}null でないことを確認してください。例えば

private SuperUser superUser = new SuperUser();
于 2011-02-23T16:15:53.620 に答える
0

getFirstName()User クラス内のメソッドはpublic ですか?

同様にgetSuperUser()、userManager マネージド Bean は public ですか?

于 2011-02-23T16:14:54.747 に答える