2016-09-26 47 views
1

我們使用的是Struts 2.5和Spring 4. Struts的配置如https://struts.apache.org/docs/spring-and-struts-2.html所述。Struts 2和Spring 4,如何從Spring應用程序上下文獲取驗證器或操作對象

支柱actionsvalidators是Spring管理的豆,我可以inject(或autowire)其他豆類。

這個驗證工作正常,顯示驗證是春豆:

public class MyValidator(){ 

    @javax.inject.Inject 
    private HelperClass aHelperClass; 
} 

現在,我想從Spring應用程序上下文的MyValidator類,並使用它。下面的代碼沒有工作,返回null

applicationContext.getBean("MyValidator"); 
applicationContext.getBean("foo.bar.MyValidator"); 

我看applicationContext.getBeanDefinitionNames()但找不到validator

那麼如何從彈簧applicationContext獲得Struts驗證器呢?

回答

1

您的bean未在應用程序上下文中配置。您應該添加@Component註釋以讓Spring使用組件掃描找到此Bean。

@Component 
public class MyValidator(){ 

    @javax.inject.Inject 
    private HelperClass aHelperClass; 
} 
+0

Thanks @RomanC我會盡快測試它(現在不在我的電腦!)。順便說一下,由於'inject'工作在'validators'和'actions'中,因此'validators'和'actions'已經被管理了,並且不需要重新註釋它。我錯了嗎 ?! –

+0

'@ Component'工作。 (我們使用'@ Named'這是如何相同的) –

+0

親愛的@RomanC我還有一些關於struts bean的問題。我問它在http://stackoverflow.com/questions/39706221/struts-2-and-spring-how-struts-created-objects-handled。我很感謝你能看看它 –

相關問題