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 

SSH(四)控制层、业务层、dao层类的创建以及applicationcontext.xml和struts.xml配置的更多相关文章

  1. SSH框架整合中Hibernate实现Dao层常用结构

    一.疑惑 一直以来,我在使用SSH框架的时候经常会发现后者有疑虑到底使用hibernate的那种方法或者如何配置hibernate来操作数据库,经过 一段时间的学习下面我来总结一下,常用的dao层配置 ...

  2. Spring 控制器层如何调用DAO层

    1.写上注解 @Autowired 2.声明一个变量 private UserDao userDao; 3.注意!Spring里面数据库对象操作类不需要实例化就能调用

  3. 030医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Dao层:基本的查询语句的编写

    我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_con ...

  4. ssh_maven的搭建之dao层的开发

    之前都是使用我们传统的方式进行引入jar包,现在我们使用maven进行管理依赖,这样,我们的jar就不需要我们进行管理,而且,我们的maven还可以进行项目构建,一个项目从编写源代码到编译,测试,运行 ...

  5. Junit结合Spring对Dao层进行单元测试

    关于单元测试,上一次就简单的概念和Mock基础做了,参考:http://60.174.249.204:8888/in/modules/article/view.article.php/74 实际开发过 ...

  6. MVC下的DAO接口类和SERVICE接口类区别?

    简单理解: DAO数据库访问对象 实现连接数据库 修改.添加等细节 service服务层 面向功能 把一个整个服务 细化 调用DAO其实service其中都是一些方法 去调用DAO 甚至方法名都和DA ...

  7. 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)

    转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...

  8. 一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转

    表现层就是看到的东西,比如你现在看到的当前页面控制层就将你的请求从页面传到后台代码逻辑层就是处理你的请求的代码DAO层就是将数据存到数据库中的代码数据库就是数据库了,存东西用的 ,DAO层就是将访问数 ...

  9. Java高并发秒杀API之业务分析与DAO层

    根据慕课网上关于java高并发秒杀API的课程讲解用maven+ssm+redis实现的一个秒杀系统 参考了codingXiaxw's blog,很详细:http://codingxiaxw.cn/2 ...

  10. SSH电力项目三 - Dao层、service层查询实现(HQL)

    底层方法封装:模糊查询,姓张的人 查询思路:select * from elec_text o           #Dao层     where o.textName like '%张%'     ...

随机推荐

  1. .Net下的高效分页

    本文技术方案支持.Net/.Net Core/.Net Framework 数据分页,几乎是任何应用系统的必备功能.但当数据量较大时,分页操作的效率就会变得很低.大数据量分页时,一个操作耗时5秒.10 ...

  2. Java SE 四大内部类

    内部类 1.成员内部类 调用成员内部类 //在外面的类的最后,写一个方法,调用成员内部类(创建对象,在访问) class Outer08{ class Inner08{ //成员内部类 public ...

  3. centos7.9使用yum方式安装MongoDB 5.x

    1.配置阿里云yum仓库 #vim /etc/yum.repos.d/mongodb-org-5.0.repo [mngodb-org] name=MongoDB Repository baseurl ...

  4. centos7使用yum方式安装redis6

    yum -y install epel-release wget make gcc-c++ cd /opt wget https://download.redis.io/releases/redis- ...

  5. 不停机为虚拟机添加主机磁盘(以VMware Workstation为例)

    VMware Workstation软件上安装的centos7系统,新增磁盘后使用fdisk -l命令查看不到新增的磁盘,有没有办法在不重启的情况下添加上新磁盘? 有办法 具体如下: # 查看主机总线 ...

  6. Docker 容器日志管理

    Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器内的服务产生的日志. 一 .Docker 引擎日志 Docker 引擎日志一般是交给了 ...

  7. ELasticsearch忘记密码后重置超级用户密码

    创建一个临时的超级用户TestSuper: [root@cfeea elasticsearch]# ./bin/elasticsearch-users useradd TestSuper -r sup ...

  8. Pyhton实践项目之(一)五子棋人机对战

    1 """五子棋之人机对战""" 2 3 import random 4 import sys 5 6 import pygame 7 im ...

  9. PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

    摘要:Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合.这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的 ...

  10. H5与APP的交互框架(WebViewJavascriptBridge)

    基本原理是: 把 OC 的方法注册到桥梁中,让 JS 去调用. 把 JS 的方法注册在桥梁中,让 OC 去调用.(注册自己,调用它人.) WebViewJavaScriptBridge 使用的基本步骤 ...