2

jsfの基本的な知識では、自分では解決できないと思われる問題に遭遇しました。

userSessionによって参照されるセッションスコープのオブジェクトがあります。

したがって、プロパティloginTimestampを取得したい場合は、userSession.loginTimestampを呼び出すだけです。これは問題なく、完全に正常に機能します。

これで、user型のオブジェクトを取得するgetLoggedInUserメソッドもあります。そのオブジェクトで、文字列を取得するメソッドgetNicknameを呼び出すことができます。

問題は、私が次のようなものを呼びたいということです

<div id="login">
    <h:outputText value="Welcome #{userSession.getLoggedInUser.getNickname}" />
    <h:form id="logoutForm">
        <h:commandButton class="Submit" value="logout"
            action="#{Logout.logout}" />
    </h:form>
</div>

getLoggedInUserメソッドにはloggedInUserプロパティがありません。しかし、value-attribute内でそのメソッドを呼び出し、その戻り型でメソッドを呼び出すにはどうすればよいですか?

多分それは不可能でさえあり、私はここで重要な何かを逃しました。しかし、このように分解するのではなく、使用したいもののプロパティを常に設定するのは本当に面倒ではないでしょうか。

すでにあなたの助けをありがとう!

4

2 に答える 2

1

getプレフィックスを失います。これは機能するはずです:

<h:outputText value="Welcome #{userSession.loggedInUser.nickname}" />
于 2012-06-21T18:14:17.930 に答える
1

UserSession

public String getLoggedUserNickname(){
   return getLoggedInUser().getNickname();
}

意見

<h:outputText value="Welcome #{userSession.loggedUserNickname}" />

あるいは単に

<h:outputText value="Welcome #{userSession.loggedInUser.nickname}" />

-

たとえば、プロパティを呼び出すと、関数が検索されmyPropます。大文字と小文字を区別userSession.myPropgetMyProp()

于 2012-06-21T18:15:00.020 に答える