javaspringconfigurationstruts2struts-validation

Struts 2 and Spring 4, how to get the validator or action object from spring application context


We are using Struts 2.5 and Spring 4. The Struts is configured spring as mentioned in https://struts.apache.org/docs/spring-and-struts-2.html.

The struts actions and validators are Spring managed beans and I can inject ( or autowire) other beans in them.

This validator is working fine which shows the validator is an spring bean:

public class MyValidator(){

    @javax.inject.Inject
    private HelperClass aHelperClass;
}

Now, i want to get the MyValidator class from spring application context and use it. The below codes did not worked and returned null

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

I look at applicationContext.getBeanDefinitionNames() but could not find the validator.

So how can I get the Struts validator from spring applicationContext?


Solution

  • Your bean is not configured in application context. You should add @Component annotation to let the Spring find this bean using component scan.

    @Component
    public class MyValidator(){
    
        @javax.inject.Inject
        private HelperClass aHelperClass;
    }