SSH框架整合实现Java三层架构实例(一)
HTML前台发送请求代码:
<tr>
<td>选择收派时间</td>
<td>
<input type="text" name="takeTimeId" class="easyui-combobox" required="true"
data-options="url:'../../taketime_findAll.action',
valueField:'id',textField:'name'" />
</td>
</tr>
TakeTimeAction代码:
@Namespace("/")
@ParentPackage("json-default")
@Controller
@Scope("prototype")
public class TakeTimeAction2 extends BaseAction<TakeTime> {
@Autowired
private TakeTimeService2 takeTimeService;
@Action(value="taketime_findAll",results={@Result(name="success",type="json")})
public String findAll(){
//调用业务层,查询所有收派时间
List<TakeTime> taketime = takeTimeService.findAll();
//压入值栈返回
ActionContext.getContext().getValueStack().push(taketime);
return SUCCESS;
}
}
抽取的Action公共类BaseAction代码:
public abstract class BaseAction<T> extends ActionSupport implements
ModelDriven<T> {
// 模型驱动
protected T model;
@Override
public T getModel() {
return model;
}
// 构造器 完成model实例化
public BaseAction() {
// 构造子类Action对象 ,获取继承父类型的泛型
// AreaAction extends BaseAction<Area>
// BaseAction<Area>
Type genericSuperclass = this.getClass().getGenericSuperclass();
// 获取类型第一个泛型参数
ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
Class<T> modelClass = (Class<T>) parameterizedType
.getActualTypeArguments()[0];
try {
model = modelClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
System.out.println("模型构造失败...");
}
}
// 接收分页查询参数
protected int page;
protected int rows;
public void setPage(int page) {
this.page = page;
}
public void setRows(int rows) {
this.rows = rows;
}
// 将分页查询结果数据,压入值栈的方法
protected void pushPageDataToValueStack(Page<T> pageData) {
Map<String, Object> result = new HashMap<String, Object>();
result.put("total", pageData.getTotalElements());
result.put("rows", pageData.getContent());
ActionContext.getContext().getValueStack().push(result);
}
}
收派时间接口TakeTimeService代码:
public interface TakeTimeService2 {
//查询所有收派时间
List<TakeTime> findAll();
}
收派接口实现类TakeTimeServiceImpl代码:
@Service
@Transactional
public class TakeTimeServiceImpl2 implements TakeTimeService2 {
@Autowired
private TakeTimeRepository2 takeTimeRepository;
@Override
public List<TakeTime> findAll() {
return takeTimeRepository.findAll();
}
}
dao层TakeTimeRepository代码:
public interface TakeTimeRepository2 extends JpaRepository<TakeTime, Integer> {}
SSH框架整合实现Java三层架构实例(一)的更多相关文章
- SSH框架整合--applicationContext.xml文件配置实例
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- java:Session(概述,三层架构实例(实现接口封装JDBC),Session实现简单购物车实例)
1.Session概述: Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存 ...
- SSH框架整合思想
--------------------siwuxie095 SSH 框架整合思想 1.SSH 框架,即 Struts2 ...
- Spring+Hibernate+Struts(SSH)框架整合
SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...
- 【转载】 JAVA三层架构,持久层,业务层,表现层的理解
JAVA三层架构,持久层,业务层,表现层的理解 转载:http://blog.csdn.net/ljf_study/article/details/64443653 SSH: Struts(表示层)+ ...
- SSH框架整合
SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...
- SSH框架整合过程总结
---------------------siwuxie095 SSH 框架整合过程总结 (一)导入相关 jar 包(共 ...
- dwr与ssh框架整合教程
(1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开 发人员开发包含AJ ...
- JavaWeb学习之三层架构实例(三)
引言 通过上一篇博客JavaWeb学习之三层架构实例(二)我们基本上已经实现了对学生信息列表的增删改查操作(UI除外),但是不难看出,代码冗余度太高了,尤其是StudentDao这个类,其中的增删改查 ...
随机推荐
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- javascript:针对yyyy-MM-dd hh:mm:ss格式的毫秒转换.
javascript:针对yyyy-MM-dd hh:mm:ss格式的毫秒转换. 时间 2015-11-07 22:18:39 HideHai's blog 原文 http://www.hideh ...
- C. Magic Ship cf 二分
C. Magic Ship time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Unicode与UTF-8关系
Unicode字符集合 Unicode 也称为 UCS(Universal Coded Character Set:国际编码字符集合) 是一个字符集合. 对世界上大部分的文字系统进行了整理,编码,使电 ...
- VS CODE 快捷键
批量注释 alt + shift +a 单行注释 ctrl +/ 批量文本替换 ctrl +f2 https://www.cnblogs.com/shine-lee/p/10234378.html
- 【转】curl命令总结,Http Post_Get 常用
curl命令总结 curl 是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE ...
- ④---在Eclipse中导入GIT项目
Eclipse中导入GIT项目 以下将为大家介绍如何在Eclipse中导入GIT项目. 一.在Eclipse中安装GIT 1首先打开Eclipse,然后点击Help>Install New So ...
- GT--记录android app消耗的cpu/内存/流量/电量
腾讯GT简介: 此apk是一款可以对APP进行测试的软件,可以在任何情况下快速测试手机app的CPU.内存.流量.电量.帧率/流畅度等性能测试.有安卓版本和ios版本,分别下载 1.下载腾讯GT ht ...
- Spring-boot 编写hello world
项目启动时出现如下报错信息: Unrecognized VM option 'TieredStopAtLevel=1' Could not create the Java virtual machin ...
- 【Python】动手分析天猫内衣售卖数据,得到你想知道的信息
大家好,希望各位能怀着正直.严谨.专业的心态观看这篇文章.ヾ(๑╹◡╹)ノ" 接下来我们尝试用 Python 抓取天猫内衣销售数据,并分析得到中国女性普遍的罩杯数据.最受欢迎的内衣颜色是什么 ...