天天看點

struts2+spring

沒用到hibernate,簡單的搭建了環境,上篇文章介紹過。搭建過程中有幾個注意點。新版本的struts2過濾器的配置和老版本不同

<filter>
		<filter-name>struts</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
           

二:認真檢查spring的包,最後研究一下。我這是遺落了struts2-spring-plugin這個jar,導緻注入不了報空指針。什麼叫整合,也就是兩個架構要聯系對吧,這個包應該是關鍵作用。

三:要了解struts2的流程。前端頁面一個action過來,程式應該是去action中找(action在MVC中其實和servlet作用一樣的,屬于和V層打交道的),我們知道action是配置在struts.xml中,通過struts.xml class屬性去spring配置檔案applicationContext.xml中找bean的name屬性,知道對應的action。action中一般會注入業務邏輯的類,比如

<bean name="LoginAction" class="com.hqj.action.LoginAction">
	
		<property name="loginService">
			<ref bean="loginService"/>
		</property>
	
	</bean>
           

 看配置,我們知道程式會找到Loginservice,這個類在處理完後交給action execute處理傳回字元串值,再到struts.xml找到相應跳轉。整個大概就這樣。

四:注意的一些對應

前端頁面表單如

<s:form name="LoginAction" action="/LoginAction" method="post">
    		userName:<s:textfield name="name" label="userName"></s:textfield><br/>
    		<br/>
    		password:<s:textfield name="pass" label="password"></s:textfield><br/>
    		<br/>
    		<s:submit label="submit"></s:submit>
    	</s:form>
           
s:textfield name="name"這個name要和
           
@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {
	
	private String name;
	private String pass;	
	private LoginService loginService;
           

中String name這個name對應.