`
myyuren
  • 浏览: 12079 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

SSH框架开发使用的BaseAction

阅读更多

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.acegisecurity.context.SecurityContextHolder;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.CookiesAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;

import com.hnjz.core.model.DicData;
import com.hnjz.core.model.Org;
import com.hnjz.core.model.Role;
import com.hnjz.core.model.User;
import com.hnjz.core.web.action.PageList;
import com.hnjz.core.web.listener.StaticLoad;
import com.hnjz.sys.search.ErrorPool;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("unchecked")
public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware,
                                             RequestAware, CookiesAware, ParameterAware,
                                             SessionAware, ApplicationAware {
    /**
     * 当返回值为json时,保存一些特殊处理的介质
     */
    protected Map                 jsonResultMap    = new HashMap();

    protected HttpServletRequest  httpServletRequest;

    protected HttpServletResponse httpServletResponse;

    protected Map                 request;

    protected Map                 session;

    protected Map                 application;

    protected Map                 parameters;

    protected Map                 cookiesMap;

    protected PageList            pl;

    protected String              first;

    protected String              success;

    protected ErrorPool           errorPool;

    protected int                 page;

    protected final Log           log              = LogFactory.getLog(getClass());

    private static final long     serialVersionUID = 5321284593923166095L;

    /**
     * 得到当前用户
     * @return
     */
    public User getCurUser() {

        return (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    }

    /**
     * 得到当前用户的角色
     * @return
     */
    public Role getCurRole() {
        AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
        User user = ((User) curdManager.get(User.class, getCurUser().getId()));

        return user.getUserRole().iterator().next().getRole();
    }

    /**
     * 得到当前用户所属的行政区划
     * @return
     */
    public DicData getCurDept() {

        AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
        User user = ((User) curdManager.get(User.class, getCurUser().getId()));

        return user.getDept();
    }
    
    /**
     * 得到当前用户所属的行政区划
     * @return
     */
    public Org getCurOrg() {

        AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
        User user = ((User) curdManager.get(User.class, getCurUser().getId()));
        return user.getGxOrg();
    }

    public void setServletRequest(HttpServletRequest arg0) {
        this.httpServletRequest = arg0;

    }

    public Map getJsonResultMap() {
        return jsonResultMap;
    }

    public void setServletResponse(HttpServletResponse arg0) {
        this.httpServletResponse = arg0;

    }

    public void setRequest(Map arg0) {
        this.request = arg0;

    }

    public HttpServletRequest getHttpServletRequest() {
        return httpServletRequest;
    }

    public void setCookiesMap(Map arg0) {
        this.cookiesMap = arg0;

    }

    public void setParameters(Map arg0) {
        this.parameters = arg0;
        this.errorPool = new ErrorPool(parameters);
    }

    public void setSession(Map arg0) {
        this.session = arg0;

    }

    public void setApplication(Map arg0) {
        this.application = arg0;

    }

    public PageList getPl() {
        return pl;
    }

    public void setPl(PageList pl) {
        this.pl = pl;
    }

    public int getPage() {

        return page;
    }

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }

    /**
     * 通过处理判断列表页面的页码。
     * 
     * @return
     */
    public int getPageNum() {
        // 读取页码
        int pageNum = 1;
        if (parameters.get("page") != null) {
            String pageStr = ((String[]) parameters.get("page"))[0];
            if (StringUtils.isNumeric(pageStr) && StringUtils.isNotBlank(pageStr)) {
                pageNum = Integer.parseInt(pageStr);
                session.put("search_page", pageNum);
            } else if (!"1".equals(first)) {
                Integer pageObj = (Integer) session.get("search_page");
                if (pageObj != null) {
                    pageNum = pageObj.intValue();
                }
            }
        }
        return pageNum;
    }

    public String getFirst() {
        return first;
    }

    public void setFirst(String first) {
        this.first = first;
    }

    public void setPage(String page) {
        this.page = Integer.parseInt(page);
    }
    public void setPage(int page) {
        this.page = page;
    }

    /**
     * 根据当前用户和外部功能查询所对应代码
     * @param userid    当前用户
     * @param funcCode  外部功能编码
     * @return
     */
    protected String getMyFuncCity(String areaid, String funcCode) {
        AbstractCurdManager curdManager = (AbstractCurdManager) StaticLoad.getBean("curdManager");
        if (StringUtils.isBlank(areaid)) {//如果所属地市为空,返回""
            return "";
        }

        String hsql = "select code from TOutfuncRelation m where m.cityid.id=? and m.functionid.attrName2= ?";
        String[] canshu = new String[] {areaid, funcCode };
        List list = curdManager.find(hsql, canshu);
        if (list.size() > 0) {
            return String.valueOf(list.get(0));
        }
        return "";
    }

}
分享到:
评论

相关推荐

    ssh框架书写合理顺序及规范

    SSH框架,全称为Struts2、Hibernate和Spring的集成框架,是Java开发中常见的MVC架构。SSH框架的合理书写顺序对于项目的结构清晰和代码维护性至关重要。下面将详细阐述SSH框架各层代码的书写规范。 1. **Action层**...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    SSH框架的整合不仅提高了系统的可维护性和扩展性,还极大地简化了开发流程。Spring负责业务逻辑的管理,Struts2处理MVC模式下的控制层,而Hibernate则专注于数据持久层,三者相辅相成,共同构建了一个高度模块化、松...

    SSH(Struts1.0+Spring+Hibernate)框架集成笔记

    SSH框架集成,即Struts1.0 + Spring + Hibernate框架的整合应用,是Java Web开发中较为复杂的集成模式之一。它集合了MVC设计模式(通过Struts实现)、依赖注入与面向切面编程(通过Spring实现)以及对象关系映射...

    SSH框架网上商城项目第10战之搭建商品类基本模块

    在本教程中,我们将深入探讨如何使用SSH框架搭建网上商城项目的商品类基本模块。SSH框架,即Struts2、Hibernate和Spring的组合,是Java Web开发中常用的三大框架,它们分别负责视图、数据持久化和应用集成。下面,...

    FckEditor在SSH中的配置

    **标题:“FCKEditor在SSH框架中的配置”** 在Java Web开发中,SSH(Spring、Struts、Hibernate)是一个常见的企业级应用框架。FCKEditor则是一款强大的富文本编辑器,用于提供用户友好的在线文本编辑功能。这篇...

    ssh整合步骤

    通过以上步骤,我们完成了SSH框架的集成。SSH整合使得开发人员可以利用Struts处理请求和展示结果,Spring管理组件和事务,以及Hibernate处理数据库交互,大大提高了开发效率和代码的可维护性。在实际项目中,还需要...

    初学JAVA-WEB开发的小项目

    是一个练习ssh框架整合的入门项目,同时可以熟悉hibernate进行增删查改的操作。 技术上的提升: 在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口...

    一套适合初学者的JAVA-WEB开发的小项目

    是一个练习ssh框架整合的入门项目,同时可以对熟悉的hibernate进行增删查改的操作。 技术上的提升: 在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口...

    ssh整合

    在SSH整合的2.0版本中,使用的是MyEclipse Blue Edition 6.5.0开发环境,配合MySQL 5.0数据库,以及Struts 1.2、Spring 2.0和Hibernate 3.1这些特定版本的框架。这种组合虽然较为陈旧,但仍然能展示SSH整合的基本...

    ssh实例 集成 例子

    ### SSH集成示例详解 #### 一、概述 本文档旨在提供一个关于...该示例虽然简单,但涵盖了SSH框架的核心组成部分,对于初学者来说是非常好的入门教程。未来还可以进一步扩展功能,比如增加用户管理、权限控制等模块。

    ssh集成笔记

    #### 二、SSH框架集成原则 在SSH集成中,为了确保各个组件能够协同工作,必须遵循一定的顺序和规则: 1. **Spring优先原则**:Spring框架必须在其他两个框架之前加载和初始化,以便于它能够管理整个应用程序的生命...

    SSH框架网上商城项目第24战之Struts2中处理多个Model请求的方法

    Struts2是一个流行的Java web开发框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在SSH(Struts2、Spring、Hibernate)框架组合中,Struts2负责控制层,处理用户请求和业务逻辑。在这个"网上商城项目"的第24...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    通过以上步骤,我们成功地搭建了一个基于Eclipse + MyEclipse的SSH框架开发环境,并实现了一个简单的用户信息查询功能。此过程不仅涉及到了各个框架的基本配置,还涉及到了数据库操作、前端页面设计等多个方面,有助...

    2017全面JAVA面试经历总结.docx

    通过上述分析可以看出,SSH框架组合是Java Web开发中非常重要的一个技术栈,掌握了这三个框架的核心原理及其实现机制,对于从事Java后端开发的工程师来说是非常必要的。此外,Spring框架作为现代Java开发中不可或缺...

    基于SSHI架构的开发平台技术方案

    本开发平台基于先进的J2EE技术,利用Spring、Struts2、Hibernate等开源框架构建了一个高度集成的开发环境。通过以上各部分的详细介绍,可以看出该平台不仅技术先进、架构安全、稳定、高效,而且易于快速上手,非常...

    软件工程综合设计BBS系统.pdf

    6. **SSH**:指Spring、Struts和Hibernate,分别是企业级应用开发框架、Web应用框架和对象关系映射工具。 7. **Oracle**:一种关系型数据库管理系统,用于存储BBS系统中的数据。 ### 知识点三:软件开发模式 文档...

Global site tag (gtag.js) - Google Analytics