2012-05-02 114 views
2

我想知道「#{request.userPrincipal.name}」在配置方面的打擊。當我運行我的Spring社交項目時,它總是在「#{request.userPrincipal.name}」處出現錯誤,如果我設置了諸如「123」之類的值,我的項目運行良好。什麼是錯的,是否有其他配置而不是「#{request.userPrincipal.name}」?關於春季社交XML配置

<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}的值,如果是,那麼我認爲你應該使用$ {request.userPrincipal.name},$而不是# –

+0

是的我想要使用$ {request.userPrincipal.name}但我不知道如何設置正確的值!它總是有這樣的錯誤:org.springframework.expression.spel.SpelEvaluationException:EL1007E:(pos 22):無法找到字段或屬性「名稱」爲空 – Seong

回答

0

這是一個Spring EL expression,這意味着從Http請求獲取用戶標識。一旦您應用您自己的用戶管理組件,您可以用自己的方式替換#{request.userPrincipal.name}

+0

如何製作我自己的用戶管理組件並替換#{request。 userPrincipal.name}如果我想使用#{request.userPrincipal.name}我該怎麼辦? – Seong

+0

@Seong您可以使用現有的框架來實現用戶管理組件,例如,使用Spring安全性。以最簡單的形式,您可以將用戶身份綁定爲http參數,例如'http://example.com?username=foo',因此#{request.username}將等於foo。 – Cole

+0

但HttpServletRequest沒有getUsername()方法。所以SpEL無法從request.username -_-獲取值! – Seong