SSH中action层的需要实现的几个接口

商城ssh架构 action层

上代码先,实现ModelDriven,可以在jsp中传值不家类名如  user.name,可以直接写成 name

RequestAware, SessionAware, ApplicationAware可以直接在三个内置对象中些数据,map格式

package com.zzu.shopol.action;

import java.lang.reflect.ParameterizedType;
import java.util.HashMap;
import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.zzu.shopol.pojo.Account;
import com.zzu.shopol.service.AccountService;
import com.zzu.shopol.service.CategoryService;
import com.zzu.shopol.service.ForderService;
import com.zzu.shopol.service.GoodsService;
import com.zzu.shopol.service.SorderService;
import com.zzu.shopol.util.FileUploadUtil;

@SuppressWarnings("all")
public class BaseAction<T> extends ActionSupport implements ModelDriven<T>,
RequestAware, SessionAware, ApplicationAware {

/**
*
*/
protected Map<String,Object> jsonMap=new HashMap<String,Object>();

private static final long serialVersionUID = -7030960600300720776L;

protected T model =null;

protected Map<String, Object> session = null;

protected Map<String, Object> application = null;

protected Map<String, Object> request = null;

protected AccountService accountService = null;

protected CategoryService categoryService = null;

protected GoodsService goodsService = null;

protected FileUploadUtil fileUploadUtil = null;

protected SorderService sorderService = null;

protected ForderService forderService =null;

//获取子类的直接父类
BaseAction(){

try {
ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();
Class clazz =(Class)type.getActualTypeArguments()[0];
model = (T) clazz.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}

}

//此方法 在创建action之后,有拦截器调用,所以执行顺序在构造方法之后
public T getModel() {

return model;
}

public ForderService getForderService() {
return forderService;
}

public void setForderService(ForderService forderService) {
this.forderService = forderService;
}

public SorderService getSorderService() {
return sorderService;
}

public void setSorderService(SorderService sorderService) {
this.sorderService = sorderService;
}

public FileUploadUtil getFileUploadUtil() {
return fileUploadUtil;
}

public void setFileUploadUtil(FileUploadUtil fileUploadUtil) {
this.fileUploadUtil = fileUploadUtil;
}

public void setRequest(Map<String, Object> request) {

this.request = request;
}

public void setApplication(Map<String, Object> application) {

this.application = application;
}

public void setSession(Map<String, Object> session) {

this.session = session;
}

public AccountService getAccountService() {
return accountService;
}

public void setAccountService(AccountService accountService) {
this.accountService = accountService;
}

public CategoryService getCategoryService() {
return categoryService;
}

public void setCategoryService(CategoryService categoryService) {
this.categoryService = categoryService;
}

public GoodsService getGoodsService() {
return goodsService;
}

public void setGoodsService(GoodsService goodsService) {
this.goodsService = goodsService;
}

public Map<String, Object> getJsonMap() {
return jsonMap;
}

public void setJsonMap(Map<String, Object> jsonMap) {
this.jsonMap = jsonMap;
}

public Map<String, Object> getSession() {
return session;
}

public Map<String, Object> getRequest() {
return request;
}

public void setModel(T model) {
this.model = model;
}

}

时间: 2024-10-13 04:43:36

SSH中action层的需要实现的几个接口的相关文章

[转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断).Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理.以上的Hibernate,Struts,都需要注入到Spring的配置文件中,Spring把这些联系

java中Action层、Service层和Dao层的功能区分

Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊.动态.子查询都可以.但是无论多么复杂的查询,dao只是封装增删改查.至于增删查改如何去实现一个功能,dao是不管的. 总结这三者,通过例子来解释: Action像是服务员,顾客点什么菜,菜上给几号桌,都是ta的职责: Service是厨师,ac

JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断).Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理.以上的Hibernate,Struts,都需要注入到Spring的配置文件中,Spring把这些联系起来,成为一个整体. 一般java都是三层架构 数据访问层(dao) 业务逻辑层(biz

简单来说一下java中的泛型,ssh中dao层使用会简化代码量

原来只是听老师说泛型特别好用,但是后来一直弄android用的泛型就比较少了,可是感觉它真的很重要,于是花了一下午的时间写了个demo,好,老规矩,上代码: 首先,sysout是个工具,但是用着不顺手,博主按照自己的习惯写了一个工具类, s: package cn.edu.sjzc.fanyafeng.testlamejni.util; /** * System统一管理类 * * @author 樊亚风 */ public class S { private S() { /* cannot be

SSH框架中POJO层, Dao层,Service层, Action层的功能理解

pojo层就是对应的数据库表的实体类(如User类). dao层,一般可以再分为***dao接口和***daoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法. service层,引用对应的dao层数据库操作,在这里可以编写自己需要的代码(比如简单的判断),也可以再细分为service接口和serviceImpl实现类. action层:引用对应的Service层实现业务逻辑,在这里结合St

Myeclipse插件快速生成ssh项目并配置注解 在action层注入service的超详细过程

最近发现,我对于ssh的 自动注入配置 还是不熟悉,于是整理了一下 终于做了一个 简单的 注入配置出来. 以前都是在applicationContext.xml 里面这样配 <bean id="loginAction" class="com.dj.ssh.action.LoginAction" scope="prototype" autowire="byName"> <property name="

ssh中多表查询及Path expected for join的异常处理

1.ssh介绍 在ssh中我们通常会将其分为pojo,dao,daoimpl,service,serviceimpl和action层,当然还包括xml配置文件及pd.properties文件.在近期做的项目中通过ssh框架搭建了后台框架以及功能的实现,发现ssh中主要需要注意对xml映射方面进行多加注意. 2.查询内容 本次用到的查询是多表查询,如shift和station的实体类存在多表查询的内容 2.1 多表的内容 在查询内容是主要涉及station和shift表中存在多对一的关系,同时需要

【夯实基础】Spring在ssh中的作用

尊重版权:http://blog.csdn.net/qjlsharp/archive/2009/03/21/4013255.aspx 写的真不错. 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)

SSH中文文档

SSH中文文档 SSH 一项创建在应用层和传输层基础上的安全协议,用于替代安全性差的TELNET,加密安全登陆用. SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题.通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗. SSH之另一项优点为其传输的数据可以是经过压缩的,所以可以加快传输的速度.SSH有很多功能,它既可以代替Telnet,又可以为FTP.POP.甚至为PPP提供一个安全的"通道"