zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    web service--基础概念(1)
    java web--国际化 i18n
    洛谷 P3842 [TJOI2007]线段
    洛谷 P6205 [USACO06JAN]Dollar Dayz S
    洛谷 P5414 [YNOI2019]排序
    洛谷 P1681 最大正方形II
    洛谷 P2327 [SCOI2005]扫雷
    洛谷 P1373 小a和uim之大逃离
    洛谷 P4317 花神的数论题
    洛谷 P4127 [AHOI2009]同类分布
  • 原文地址:https://www.cnblogs.com/ckxlovejava/p/7011639.html
Copyright © 2011-2022 走看看