在WebWork 2.2.x 之后,它將直接內建支持spring ioc了,所以更加簡單了,,
做個例子
第一步:在web-inf下建一個webwork.properties文件,
內容為
webwork.objectFactory = spring
第二步:也就是加載applicationContext.xml,可以采取前面前的兩種之一,,這里采用后面那種
<listener>
??<listener-class>
???org.springframework.web.context.ContextLoaderListener
??</listener-class>
?</listener>
第三步:創建要裝載的實例,在applicationContext.xml(采用監聽的方式,記住默認的位置是在web-inf下面)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
<beans default-autowire="autodetect"> <!--記注一定要加上-->
? <bean id="userManager" singleton="true" class="helloWorld.UserManager"/>
</beans>
第四步:在修改我原來的例子
HelloWorldAction.java
為
package helloWorld;
import com.opensymphony.xwork.ActionSupport;
public class HelloWorldAction extends ActionSupport{
??? String greeting;
??? UserManager userManager;
??? public void setGreeting(String greeting) {
??????? this.greeting = greeting;
??? }
??? public String getGreeting() {
??????? return greeting;
??? }
??? public UserManager getUserManager() {
??return userManager;
?}
?public void setUserManager(UserManager userManager) {
??this.userManager = userManager;
?}
?public String execute() throws Exception {
??userManager.sayHello();
??System.out.println("after userManager.sayHello()");
??????? if (greeting.equals("") || greeting == null) {
??????????? addFieldError("greeting", getText("greeting"));
??????????? return ERROR;
??????? }
??????? return SUCCESS;
??? }
}
而UserManager.java類如下
package helloWorld;
public class UserManager {
?public UserManager()
?{
? System.out.println("create instance of UserManger");
?}
?public void sayHello()
?{
? System.out.println("hello zjh");
?}
}
再訪問http://localhost:8080/WebWork/index.jsp提交后在tomcat console窗口打印出
hello zjh
after userManager.sayHello()