SSH(四)控制層、業務層、dao層類的創建以及applicationcontext.xml和struts.xml配置


 ssh框架的運作方式就是頁面請求控制層,控制層調用dao層的方法,dao層完成對數據的操作的一個過程。

現在我們初步簡單編寫各層的class.

action控制層:

ActionSupport:實現了很多的實用借口,提供了很多默認方法,這些默認方法包括國際化信息的方法、默認的處理用戶請求的方法等,這樣可以大大的簡化Acion的開發。

ModelDriven:把實體類當成頁面數據的收集對象。

注:modeldriven作用:實現ModelDriven就必須實現getModel這個方法,該方法返回的是你的ModelDrivern泛型中設定的實體類。其實是為了實現代碼的重用,不要再定義一次你在數據訪問層定義的屬性了,直接用那個類就行了。注意返回值,如果實現getModel時忘記了修改其返回值,在項目運行后,后台獲取前段數據時將全部為null。

public class productAction extends ActionSupport implements ModelDriven<product> {
	//模型驅動使用的類
	private product product = new product();
	public product getModel() {
		// TODO Auto-generated method stub
		return product;
	}
	
	//struts和spring整合過程中按名稱注入業務層的類
	private productService productService;
	public void setProductService(productService productService) {
		this.productService = productService;
	}

	//控制層的save方法
	public void save(){
		System.out.println("頁面調用控制層的方法成功!");
		productService.save(product);
	}

}

service業務層:

public class productService { 
	//業務層注入dao的類
	private productDao productDao;
	//在spring中有set方法就可以完成注入
	public void setProductDao(productDao productDao) {
		this.productDao = productDao;
	}
	//業務層保存商品的方法
	public void save(product product){
		System.out.println("控制層調用業務層成功!");
		productDao.sava(product);
	}
}

dao數據實現層:

public class productDao {
	
	public void sava(product product){
		System.out.println("業務層調用dao層成功!");
		
	}

}

struts整合spring有兩種方式:

1、struts自身創建action,在struts.xml中配置即可。缺點:因為action由struts創建因此不具備spring的aop功能。

2、spring創建管理action,需要在applicationcontext.xml中配置action,然后再struts.xml配置中class引入前者配置的action的ID。

spring applicationcontext.xml配置添加:

	    <!-- struts整合spring的第二種方式:action由spring來管理:優點,可以使用aop面向切面編程 -->
		<bean id="productAction" class="com.ssh.action.productAction">
			<!-- 需要手動注入service -->
			<property name="productService" ref="productService"></property>
		</bean>
		
		<!-- 配置業務層的類 -->
		<bean id="productService" class="com.ssh.service.productService">
			<property name="productDao" ref="productDao"></property>
		</bean>
		
		<!-- 配置DA0的類 -->
		<bean id="productDao" class="com.ssh.dao.productDao">
			
		</bean>

struts struts.xml配置:

這里的action name="production_*"是需要和我們的頁面的提交訪問action保持一致。

<!-- struts整合spring的第一種方式 :struts自身創建action的類。在struts.xml中完成配置。缺點:該方式不能使用spring的aop
這里推薦使用第二種整合方式,第一種暫且注釋以作比較。-->
<!--  
    <package name="default" namespace="/" extends="struts-default">
        <action name="product_*" class="com.ssh.action.productAction" method="{1}" >
            
        </action>
    </package>
-->
<!-- struts整合spring的第二種方式:action由spring來管理:優點,可以使用aop面向切面編程 -->
<!-- 這里配置的action class只需要引入spring中配置的action的ID,而不需要再引入全路徑-->
	 <package name="default" namespace="/" extends="struts-default">
        <action name="product_*" class="productAction" method="{1}" >
            
        </action>
    </package>

添加前期建好的addproduct.jsp頁面的from action=“product_sava"

 <s:form action="product_save" method="post" namespace="/" theme="simple">

完成了各層類的創建和配置整合,啟動tomcat服務器,訪問我們以建好的第一個頁面。

http://localhost:8080/ssh/addproduct.jsp

點擊添加按鈕,頁面按照配置好的action找到相應的控制層以及控制層里的方法,開始執行,觀察MyEclipse console控制台輸出:

至此,我們的struts和spring整合初步完成。 

 

product 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM