2012-05-02 9 views
2

私は "#{request.userPrincipal.name}"を設定しています。私が春のソーシャルプロジェクトを実行すると、 "#{request.userPrincipal.name}"にエラーが表示されます。たとえば、 "123"などの値を設定するとプロジェクトがうまく実行されます。何が間違っていて、 "#{request.userPrincipal.name}"の代わりに他の設定がありますか?about spring social xml configuration

<bean id="connectionRepository" factory-method="createConnectionRepository" factory-bean="usersConnectionRepository" scope="request"> 
    <constructor-arg value="#{request.userPrincipal.name}" /> 
    <aop:scoped-proxy proxy-target-class="false" /> 
</bean> 
+0

正確なエラーは何ですか? – abalogh

+0

@Seongは、#{request.userPrincipal.name}の値をpropsファイルから使用しようとしていますか?もしそうなら、$ {request.userPrincipal.name}、# –

+0

の代わりに$を使用する必要があります。 $ {request.userPrincipal.name}を使用しますが、わかりません正しい値を設定する方法! org.springframework.expression.spel.SpelEvaluationException:EL1007E :(pos 22):フィールドまたはプロパティ 'name'がnullに見つかりません – Seong

答えて

0

これはSpring EL expressionです。これは、Http要求からユーザーIDを取得することを意味します。独自のUser Managementコンポーネントを適用したら、#{request.userPrincipal.name}を独自の方法で置き換えることができます。

+0

自分のユーザー管理コンポーネントを作成して#{requestを置き換える方法。 userPrincipal.name} ??? #{request.userPrincipal.name}を使用したい場合はどうすればよいですか? – Seong

+0

@Seong既存のフレームワークを使用して、たとえばSpringセキュリティを使用してUser Managementコンポーネントを実装することができます。最も単純な形式では、ユーザーIDをhttpパラメータ(たとえば、 'http://example.com?username=foo')としてバインドできるため、#{request.username}はfooと等しくなります。 – Cole

+0

しかし、HttpServletRequestにはgetUsername()メソッドがありません。したがって、SpELはrequest.username -_-から値を取得できません! – Seong

関連する問題