Hmm. I use the same combo.

I found at some point I could jsut do

public class MyAction extends ActionSupport {

private MyInjectedService service 

etc etc

But I have started doing:

public class MyAction extends ActionSupport {

@Autowired
private MyInjectedService service

I am not sure if that alters the way Struts2/Spring does it. But it does
make it a bit clearer to read.

-----Original Message-----
From: Jake Vang [mailto:vangj...@googlemail.com] 
Sent: 13 May 2010 10:23
To: user@struts.apache.org
Subject: spring, struts2, convention plugin, how to "wire" an action
class

i am using struts 2.1.8.1 and the convention plugin. i am also using
spring for dependency injections (DI). my question is if it is
possible to to use struts2 + convention plugin with spring for DI on
my Action classes? i have searched  the internet but only seen
examples using struts 1 + spring for DI on Action classes. the
convention plugin makes life simpler (no XML), but also, partially
because of little documentation, makes it uneasy to do certain things.
i wonder if this is part of the reason why DI on Action classes using
spring + struts is not obvious for me.

Here's a simple code. This is my action class.

public class SpringWiringAction extends ActionSupport {
 private String message = "no dependency injection";

 @Action(value="/spring-wiring")
 public String springWiring() {
  return SUCCESS;
 }

 public String getMessage() { return message; }
 public void setMessage(String message) { this.message = message; }
}

My "view" or the JSP page corresponding to the Action is:
/webapp/WEB-INF/content/spring-wiring-success.jsp.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%...@taglib uri="/struts-tags" prefix="s" %>
<html>
 <head><title>Test Spring Wiring</title</head>
 <body>
 <s:property value="message"/>
 </body>
</html>

My web.xml is setup according to
http://struts.apache.org/2.0.14/docs/struts-2-spring-2-jpa-ajax.html.

My spring XML file (/webapp/WEB-INF/applicationContext.xml) is defined
as following.

...
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfi
gurer">
 <property name="location"
value="WEB-INF/applicationContext.properties"/>
</bean>
...
<bean name="/spring-wiring" class="com.me.actions.SpringWiringAction">
 <property name="message" value="${message}"/>
</bean>

My /webapp/WEB-INF/applicationContext.properties file then has this
content.

message=dependency inject success

when i start up tomcat 6, everything starts up correctly and there are
no complaints. however, when i go to
http://localhost/webapp/spring-wiring, the message that gets displayed
is "no dependency injection".

is there something that i am missing using spring + struts2 (with the
convention plugin) to use DI on Actions?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to