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>