首页 > 编程语言 >SSH框架整合实现Java三层架构实例(一)

SSH框架整合实现Java三层架构实例(一)

时间:2024-09-06 12:25:56浏览次数:14  
标签:rows Java public 实例 extends SSH findAll 收派 BaseAction

HTML前台发送请求代码:

1 <tr>
2     <td>选择收派时间</td>
3     <td>
4         <input type="text" name="takeTimeId" class="easyui-combobox" required="true"
5             data-options="url:'../../taketime_findAll.action', 
6             valueField:'id',textField:'name'" />
7     </td>
8 </tr>

TakeTimeAction代码:

1 @Namespace("/")
 2 @ParentPackage("json-default")
 3 @Controller
 4 @Scope("prototype")
 5 public class TakeTimeAction2 extends BaseAction<TakeTime> {
 6     @Autowired
 7     private TakeTimeService2 takeTimeService;
 8     @Action(value="taketime_findAll",results={@Result(name="success",type="json")})
 9     public String findAll(){
10         //调用业务层,查询所有收派时间
11         List<TakeTime> taketime = takeTimeService.findAll();
12         //压入值栈返回
13         ActionContext.getContext().getValueStack().push(taketime);
14         return SUCCESS;
15     }
16 }

 

抽取的Action公共类BaseAction代码:

1 public abstract class BaseAction<T> extends ActionSupport implements
 2         ModelDriven<T> {
 3     // 模型驱动
 4     protected T model;
 5     @Override
 6     public T getModel() {
 7         return model;
 8     }
 9     // 构造器 完成model实例化
10     public BaseAction() {
11         // 构造子类Action对象 ,获取继承父类型的泛型
12         // AreaAction extends BaseAction<Area>
13         // BaseAction<Area>
14         Type genericSuperclass = this.getClass().getGenericSuperclass();
15         // 获取类型第一个泛型参数
16         ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
17         Class<T> modelClass = (Class<T>) parameterizedType
18                 .getActualTypeArguments()[0];
19         try {
20             model = modelClass.newInstance();
21         } catch (InstantiationException | IllegalAccessException e) {
22             e.printStackTrace();
23             System.out.println("模型构造失败...");
24         }
25     }
26     // 接收分页查询参数
27     protected int page;
28     protected int rows;
29     public void setPage(int page) {
30         this.page = page;
31     }
32     public void setRows(int rows) {
33         this.rows = rows;
34     }
35     // 将分页查询结果数据,压入值栈的方法
36     protected void pushPageDataToValueStack(Page<T> pageData) {
37         Map<String, Object> result = new HashMap<String, Object>();
38         result.put("total", pageData.getTotalElements());
39         result.put("rows", pageData.getContent());
40     ActionContext.getContext().getValueStack().push(result);
41     }
42 }

 

收派时间接口TakeTimeService代码:

1 public interface TakeTimeService2 {
2     //查询所有收派时间
3     List<TakeTime> findAll();
4 }

收派接口实现类TakeTimeServiceImpl代码:

1 @Service
 2 @Transactional
 3 public class TakeTimeServiceImpl2 implements TakeTimeService2 {
 4     @Autowired
 5     private TakeTimeRepository2 takeTimeRepository;
 6     @Override
 7     public List<TakeTime> findAll() {
 8         return takeTimeRepository.findAll();
 9     }
10 }

dao层TakeTimeRepository代码:

1 public interface TakeTimeRepository2 extends JpaRepository<TakeTime, Integer> {}

 



标签:rows,Java,public,实例,extends,SSH,findAll,收派,BaseAction
From: https://blog.51cto.com/zhangxueliang/11937109

相关文章

  • 828华为云征文|华为云Flexus X实例下的场景体验——小企业的福星——最简单的php环境搭
    前言都是php是全世界最好的语言,我也是非常的喜欢,虽然我是搞大数据的,但是php在很逗情况下对于个人开发者来说是非常友好的,对于一般小企业来说使用【华为云FlexusX实例】来搭建一个php服务跑自己的【企业网站】是最方便不过的了,接下来我们就来搭建一下环境。目录前言PHP环境......
  • Java静态代码块、构造代码块执行顺序问题
    packagecom.zxl.staticdemo;publicclassBlockTest{static{System.out.println("BlockTest静态代码块执行");}{System.out.println("BlockTest构造代码块执行");}publicBlockTest(){System.out.......
  • [Java基础]hashcode/equals
    hashcode()/equals()/====当==左右两边是基本类型的时候,比较的是数值是否相等;当==左右两边是对象(引用)类型的时候,比较的是p和p2这两个对象所指向的堆中的对象地址对于==来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是......
  • Java中实现对象和Map之间的转换
    在Java开发中,经常需要将Java对象转换成Map,或者反过来将Map转换成Java对象。这种转换在很多场景下都非常有用,比如在序列化和反序列化过程中、在数据传输和持久化时、或者在进行对象属性的批量操作时。本文将介绍几种不同的方法来实现Java对象和Map之间的相互转换,选择哪种方法取......
  • 基于JAVA 小程序 旅游推荐管理系统,旅行系统
    目录一.研究目的二.系统分析三.系统流程和逻辑四.数据库设计五.页面展示六.源码获取一.研究目的随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合。旅游社交小程序的信息化......
  • Mysql多实例安装
    MySQL多实例的本质在一台机器上开启多个不同的MySQL实例,也就是各实例监听不同的端口,提供不同的服务。多个实例公用一套MySQL安装程序,启动程序和配置文件可以是一个也可以是多个(推荐多个);各自的数据文件隔离;逻辑上各实例彼此隔离。为什么要使用多实例?优缺点?物理机性能强大,单个......
  • JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的区别
    JavaScript中structuredClone和JSON.parse(JSON.stringify())克隆对象的异同点一、什么是structuredClone?1.structuredClone的发展structuredClone是在ECMAScript2021(ES12)标准中引入的,ECMAScript2021规范正式发布于2021年6月自2022年3月起,该功能适用于最......
  • 【Java】【SpringBoot】yml配置文件解析
    yml的常见配置可以详见官方文档。https://docs.spring.io/spring-boot/appendix/application-properties/index.html#appendix.application-properties.server服务器配置server:port:8080#端口servlet:context-path:/#应用程序上下文路径【设置访问路径前缀......
  • java面试题(Spring、Spring MVC)
    点赞关注+收藏,万分感谢!!Spring1、为什么要使用spring?spring提供ioc技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦。spring提供了事务支持,使得事务操作变的更加方便。spring提供了面向切片编程,这样可以更方便的处理某一类......
  • 机器学习-AdaBoost实例
    以下是使用AdaBoost算法进行分类的一个简单例子,采用Python中的scikit-learn库。我们将使用经典的鸢尾花(Iris)数据集,并通过AdaBoost结合决策树分类器来进行分类。代码实现:#导入库fromsklearn.ensembleimportAdaBoostClassifierfromsklearn.treeimportDecis......