1. 配置struts就不用说了吧,如果用myEclipse直接add一下就可以了。接下来就来配置
让它支持spring可以,新建项目后,打开struts-confing.xml在后面加人下面代码:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
2. 然后就开始写我们的bean
User bean
package com.yourcompany.struts.model;
public class User {
public String sayHello(String str) {
return "hello,"+str;
}
}
控制器
private User user=null;
public void setUser(User user) {
this.user=user;
}
// 上面很重要
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception {
DynaActionForm userForm = (DynaActionForm) form;
String suss=user.sayHello((String)userForm.get("userName"));
request.setAttribute("hello",suss); return mapping.findForward("sayHello");
}
这就是spring 的依赖注入,咱们先看看配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="/user" class="com.yourcompany.struts.action.UserAction" singleton="false">
<property name="user"><ref bean="user"/></property>
</bean>
<bean name="user" class="com.yourcompany.struts.model.User" singleton="false">
</bean>
</beans>
首先定义的是 userAction它有个user的属性,而user属性又依赖下面定义的user bean,还有一点就是在struts-config里更改userAction的type属性让它由spring来控制。
<action path="/user" type="org.springframework.web.struts.DelegatingActionProxy" name="userForm" scope="request" parameter="method" validate="false"/>
这样spring就会在运行的时候装载各个bean并对相应的bean初始化了。
3. 最后表现层
<logic:present name="hello">
<bean:write name="hello"/>
</logic:present>
<html:form action="/user.do">
<html:text property="userName"/>
<input type="hidden" name="method" value="list"/>
<html:submit/>
</html:form>