沒用到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對應.