How do you declare the action in struts.xml? Because instead full
class name you must use the id from applicationContext.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="secure" namespace="/secure" extends="default">
<action name="user" class="userAction">
<result>success.jsp</result>
</action>
</package>
</struts>
https://struts.apache.org/docs/spring-plugin.html#SpringPlugin-InitializingActionsfromSpring
Regards
--
Ćukasz
+ 48 606 323 122 http://www.lenart.org.pl/
2015-09-05 14:47 GMT+02:00 Chris <[email protected]>:
> I'm trying to use the Spring plugin to inject a dependency into my action at
> runtime. This is the first time I've tried this with Struts2 so I may have
> missed something but I'm stumped because I can see the dependency is injected
> but then the object is later null when I need to use it. Here is my action
> class code:
>
> public class UserRegisterAction extends ActionSupport {
> private User user = new User();
>
> @Override
> public String execute(){
> getUserService().saveUser(user);
> return "success";
> }
>
> public UserServiceImpl getUserService(){
> return userService;
> }
>
> UserServiceImpl userService;
> public void setUserService(UserServiceImpl us){
> this.userService = us;
> }
> }
>
> Using the debugger I can see that upon startup "setUserService is called and
> this.userService is set, so the injection appears to be working ok, but when
> the execute method is called when the page is submitted userService is null.
> I'm quite new to Struts but I don't understand how my userService is being
> null.
>
> Can anyone see what I am missing?
>
>
> My applicationContext:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:tx="http://www.springframework.org/schema/tx"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://www.springframework.org/schema/tx
> http://www.springframework.org/schema/tx/spring-tx.xsd"
> default-autowire="byName">
>
> <bean
> class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"
> />
>
> <bean
> class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
>
> <bean id="entityManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
> <property name="dataSource" ref="dataSource" />
> <property name="jpaVendorAdapter">
> <bean
> class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
> <property name="databasePlatform"
> value="org.hibernate.dialect.MySQL5Dialect" />
> <property name="database" value="MYSQL" />
> <property name="showSql" value="true" />
> </bean>
> </property>
> </bean>
>
> <bean id="dataSource"
> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
> <property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
> <property name="url" value="jdbc:mysql://127.0.0.1:3306/baseapp" />
> <property name="username" value="xxxxxx" />
> <property name="password" value="xxxxxx" />
> </bean>
>
> <bean id="transactionManager"
> class="org.springframework.orm.jpa.JpaTransactionManager">
> <property name="entityManagerFactory" ref="entityManagerFactory" />
> </bean>
>
> <tx:annotation-driven transaction-manager="transactionManager" />
>
> <bean id="userService" class="com.xxxxx.service.UserServiceImpl"
> scope="prototype"/>
>
> <bean id="userAction" class="com.xxxxxx.action.UserRegisterAction">
> <property name="userService" ref="userService"/>
> </bean>
>
> </beans>
>
>
> Web.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
> http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
> version="3.1">
>
> <filter>
> <filter-name>struts2</filter-name>
>
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> </filter>
>
> <filter-mapping>
> <filter-name>struts2</filter-name>
> <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> <listener>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> </listener>
> </web-app>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]