`

Struts2的简单示例action类

阅读更多

基类:
package com.kit.common;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.kit.utils.Config;
import com.kit.utils.JsonUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings({"serial","unchecked","rawtypes"})
public abstract class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware, Serializable{

	public Boolean isSearch;//是否查询
	public String filterType;//查询业务类型
	public QueryParameter queryParameter;//封装查询参数
	public QueryResult queryResult;//查询结果
	public Long rows = SysConstant.ADMIN_PAGE_COUNT;//分页(每页显示记录数10)
	public Long page = 1L;//页码
	public String sortName;//jquery 表格排序字段
	public String sortOrder;//jquery 表格排序方式
	
	public HttpServletRequest request;
	public HttpServletResponse response;
	
	public String returnPageURL;
	public String returnParamater;
	public String resultJSON;
	
	public void beforeAnsy(){
		ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
		ServletActionContext.getResponse().setHeader("Cache-Control","no-cache");
		ServletActionContext.getResponse().setHeader("Pragma","no-cache");
		ServletActionContext.getResponse().setDateHeader("Expires",0);
	}
	public final Log log = LogFactory.getLog(getActionClassFullName());
	
	/**
	 * 去指定的URL地址
	 * @return
	 */
	public String goToUrl(){
		return "dispatcher";
	}
	/**
	 * 实体列表初始化
	 * @return
	 */
	protected String initQueryList(boolean isValidFilter) {
		if(null!=isSearch && isSearch.booleanValue()){//点击查询
			Context.setQueryParameter(getActionClassFullName(), queryParameter);
		}else if(null!=isSearch && !isSearch.booleanValue()){//非查询
			queryParameter = Context.getQueryParameter(getActionClassFullName());
			if(null!=queryParameter){
				Context.removeQueryParameter(getActionClassFullName());
			}
			queryParameter = new QueryParameter();
		}else{//查询分页
			queryParameter = Context.getQueryParameter(getActionClassFullName());//获取查询条件
			if(null == queryParameter){
				queryParameter = new QueryParameter();
			}
		}
		
		StringBuffer sb = new StringBuffer(" where ");
		sb.append(makeFilterString(queryParameter));//过滤HQL
		
		initQueryResult(rows);//初始化查询分页参数
		if(isValidFilter){
			if(sb.toString().trim().equals("where")){
				sb.append(" valid='1'");
			}else{
				sb.append(" and valid='1'");
			}
		}else{
			if(sb.toString().trim().equals("where"))
				sb.append(" 1=1 ");
		}
		
		return sb.toString();
	}
	
	/**
	 * 初始化查询分页参数
	 */
	protected void initQueryResult(Long queryResultCountType) {
		if(null==queryResult){
			queryResult = new QueryResult();
		}
		if(rows==0)
			queryResult.setMaxResult(queryResultCountType);
		else
			queryResult.setMaxResult(rows);
		queryResult.setCurrentPage(page);
		String currentRequest = request.getRequestURI();
		queryResult.setUrl(currentRequest);
	}
	protected void retrunMsg(boolean sucess,Map retMsg){
		if(retMsg==null)retMsg = new HashMap();
		retMsg.put("state", sucess);
		String retJSON = "";
		if(sucess){
			retMsg.put("resultMsg", "操作成功!");
			retJSON = JsonUtil.getJSONString(retMsg);
		}else{
			retMsg.put("resultMsg", "操作异常!请检查并重试或联系管理员。");
			retJSON = JsonUtil.getJSONString(retMsg);
		}
		JsonUtil.toJSONHtmlOut(retJSON);
	}
	protected void retrunMsg(boolean sucess){
		Map retMsg = new HashMap();
		retMsg.put("state", sucess);
		String retJSON = "";
		if(sucess){
			retMsg.put("resultMsg", "操作成功!");
			retJSON = JsonUtil.getJSONString(retMsg);
		}else{
			retMsg.put("resultMsg", "操作异常!请检查并重试或联系管理员。");
			retJSON = JsonUtil.getJSONString(retMsg);
		}
		JsonUtil.toJSONHtmlOut(retJSON);
	}
	protected void retrunMsg(boolean state,String retMassage){
		Map retMsg = new HashMap();
		retMsg.put("state", state);
		retMsg.put("resultMsg", retMassage);
		String retJSON = JsonUtil.getJSONString(retMsg);
		JsonUtil.toJSONHtmlOut(retJSON);
	}
	public Map<String, Object> getSession() {
		return ActionContext.getContext().getSession();
	}

	public Config Cfg() {
		return Config.getInstance();
	}

	public QueryParameter getQueryParameter() {
		return queryParameter;
	}

	public void setQueryParameter(QueryParameter queryParameter) {
		this.queryParameter = queryParameter;
	}

	public Boolean getIsSearch() {
		return isSearch;
	}

	public void setIsSearch(Boolean isSearch) {
		this.isSearch = isSearch;
	}

	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}
	
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}

	public QueryResult getQueryResult() {
		return queryResult;
	}

	public void setQueryResult(QueryResult queryResult) {
		this.queryResult = queryResult;
	}


	public String getReturnPageURL() {
		return returnPageURL;
	}

	public Long getRows() {
		return rows;
	}

	public void setRows(Long rows) {
		this.rows = rows;
	}

	public Long getPage() {
		return page;
	}

	public void setPage(Long page) {
		this.page = page;
	}

	public void setReturnPageURL(String returnPageURL) {
		this.returnPageURL = returnPageURL;
	}

	public String getReturnParamater() {
		return returnParamater;
	}

	public void setReturnParamater(String returnParamater) {
		this.returnParamater = returnParamater;
	}

	public String getSortName() {
		return sortName;
	}

	public void setSortName(String sortName) {
		this.sortName = sortName;
	}

	public String getSortOrder() {
		return sortOrder;
	}

	public void setSortOrder(String sortOrder) {
		this.sortOrder = sortOrder;
	}

	public String getFilterType() {
		return filterType;
	}

	public void setFilterType(String filterType) {
		this.filterType = filterType;
	}
}


实现基本业务类:
package com.forveross.coas.web.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.forveross.plane.service.TaskInfoService;
import com.forveross.plane.vo.TaskInfo;
import com.kit.common.BaseAction;
import com.kit.common.QueryParameter;

@SuppressWarnings("serial")
@Controller("taskInfoAction")
@Scope("prototype")
public class TaskInfoAction extends BaseAction {

	@Resource(name = "taskInfoServiceImpl")
	private TaskInfoService taskInfoService;
	private int pageNum = 1;
	private int pageSize = 15;
	private int totalCount;
	private int pageCount;
	private int cpage = 1;// 当前页
	private List<Integer> pageList;
	private String mes;// 提示信息
	private String act;
	private String taskId;

	private TaskInfo taskInfo;
	private Date grabTime;

	public Date getGrabTime() {
		return grabTime;
	}

	public void setGrabTime(Date grabTime) {
		this.grabTime = grabTime;
	}

	private List<TaskInfo> taskList;

	public TaskInfoService getTaskInfoService() {
		return taskInfoService;
	}

	public void setTaskInfoService(TaskInfoService taskInfoService) {
		this.taskInfoService = taskInfoService;
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
	}

	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

	public int getCpage() {
		return cpage;
	}

	public void setCpage(int cpage) {
		this.cpage = cpage;
	}

	public String getMes() {
		return mes;
	}

	public void setMes(String mes) {
		this.mes = mes;
	}

	public List<Integer> getPageList() {
		return pageList;
	}

	public void setPageList(List<Integer> pageList) {
		this.pageList = pageList;
	}

	public String getAct() {
		return act;
	}

	public void setAct(String act) {
		this.act = act;
	}

	public TaskInfo getTaskInfo() {
		return taskInfo;
	}

	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}

	public void setTaskInfo(TaskInfo taskInfo) {
		this.taskInfo = taskInfo;
	}

	public List<TaskInfo> getTaskList() {
		return taskList;
	}

	public void setTaskList(List<TaskInfo> taskList) {
		this.taskList = taskList;
	}

	/**
	 * 初始化分页信息
	 */
	public void initPage() {
		cpage = pageNum;
		totalCount = taskInfoService.countTaskInfo();
		pageList = new ArrayList<Integer>();

		if (totalCount % pageSize != 0) {
			pageCount = totalCount / pageSize + 1;
		} else {
			pageCount = totalCount / pageSize;
		}
		for (int i = 1; i <= pageCount; i++) {
			pageList.add(i);
		}
	}

	/**
	 * 添加航空公司
	 * 
	 * @return
	 * @throws Exception
	 */
	public String addTaskInfo() throws Exception {
		String urlStr = "";
		if (taskId != null && !taskId.trim().equals("")) {// 修改
			taskInfo = taskInfoService.findTaskInfo(Long.parseLong(taskId));
			urlStr = "WEB-INF/jsp/pg/flight/task_update.jsp";
		} else {// 添加
			urlStr = "WEB-INF/jsp/pg/flight/task_add.jsp";
		}
		returnPageURL = urlStr;
		return "dispatcher";
	}

	/**
	 * 添加或修改任务
	 * 
	 * @return
	 * @throws Exception
	 */
	public String editTaskInfo() throws Exception {
		String urlStr = "";
		if (act != null && act.equals("update")) {// 修改
			taskInfo.setNextGrabTime(this.grabTime);
			taskInfoService.saveOrUpdateTaskInfo(taskInfo);

			this.mes = "修改任务成功!";
			initPage();
			taskList = taskInfoService.findTaskInfoList(pageNum, pageSize);
			urlStr = "WEB-INF/jsp/pg/flight/task_setting.jsp";
		} else {// 添加
			taskInfo.setNextGrabTime(this.grabTime);
			taskInfoService.saveOrUpdateTaskInfo(taskInfo);
			setTaskInfo(null);
			urlStr = "WEB-INF/jsp/pg/flight/task_add.jsp";
		}
		returnPageURL = urlStr;
		return "dispatcher";
	}

	/**
	 * 删除任务
	 * 
	 * @return
	 * @throws Exception
	 */
	public String deleteTaskInfo() throws Exception {
		if (taskId != null && !taskId.trim().equals("")) {
			taskInfoService.deleteTaskInfo(Long.parseLong(taskId));
			this.mes = "删除任务成功!";
		}

		initPage();
		taskList = taskInfoService.findTaskInfoList(pageNum, pageSize);
		returnPageURL = "WEB-INF/jsp/pg/flight/task_setting.jsp";
		return "dispatcher";
	}

	/**
	 * 查询显示任务列表
	 * 
	 * @return
	 * @throws Exception
	 */
	public String showTaskInfoList() throws Exception {
		initPage();
		taskList = taskInfoService.findTaskInfoList(pageNum, pageSize);
		returnPageURL = "WEB-INF/jsp/pg/flight/task_setting.jsp";
		return "dispatcher";
	}

}

分享到:
评论

相关推荐

    struts2简单示例

    这个"struts2简单示例"旨在帮助初学者快速掌握Struts2的基本用法,特别是实现一个简单的登录功能。下面将详细解释相关知识点。 首先,Struts2框架的核心是Action类,它是处理用户请求的中心。在这个示例中,你会...

    struts2简单例子

    这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...

    Struts 2简单小示例

    在这个"Struts 2简单小示例"中,我们可能看到一个简单的Action类、配置文件、以及一个展示结果的JSP页面。通过学习和实践这个示例,开发者能够对Struts 2的工作原理和基本操作有一个清晰的理解,为进一步深入学习和...

    Struts2简单的页面跳转示例

    在"Struts2简单的页面跳转示例"中,我们通常会有一个Action类,这个类需要继承自Struts2提供的ActionSupport类或者自定义一个基类。Action类中的方法对应用户请求的URL,当用户发起请求时,Struts2框架会根据配置...

    完整struts2文件上传示例

    以下是对"完整Struts2文件上传示例"的详细解释: 1. **配置Struts2框架** 在Struts2中,我们首先需要在`struts.xml`配置文件中添加相关的拦截器(interceptor)来处理文件上传。`struts.multipart.parser`属性应...

    struts2配置示例

    Struts2的Action类可以定义一个方法对应登录操作,接收表单提交的数据,而Struts2的配置文件(struts.xml)则指定Action类和方法。 3. **OGNL表达式**:OGNL是Struts2中的默认表达式语言,用于访问和操作对象的属性...

    一个简单的Struts2的示例工程

    在描述中提到的"简单的Struts2的示例工程"中,我们可能会看到一个或多个Action类,它们是程序的业务逻辑中心。 Action类通常继承自`org.apache.struts2.dispatcher.ng.ExecuteAction`或实现了`...

    struts2简单入门教程

    根据业务需求,创建相应的JSP页面以供用户输入数据,并通过表单提交数据到Struts2的Action类。 第4步:在struts.xml文件中配置Action。这是一个基于XML的配置文件,用于定义和映射Action类、结果页面以及其它配置...

    最简单的Struts2的代码示例

    这个"最简单的Struts2的代码示例"旨在帮助初学者快速理解和上手Struts2框架的基本用法。 首先,我们从MVC架构开始。在Struts2中,模型由业务逻辑处理,视图负责展示用户界面,而控制器接收用户的请求,处理业务逻辑...

    Struts2示例demo

    描述中的"Struts示例demo"进一步强调了这是一个实践性的教程,旨在帮助开发者理解并掌握Struts2的核心概念和工作流程。 标签"Struts2demo"表明这是一个关于Struts2的实例,可能涵盖了Action、Interceptor、Result...

    简单的struts2示例

    通过这个简单的Struts2示例,开发者可以学习到如何创建Action、配置Struts2、使用OGNL以及理解MVC模式在实际项目中的应用。对于初学者来说,这是一个很好的起点,可以帮助他们快速融入Java Web开发的世界。同时,对...

    Struts2购物车示例

    在基于Struts2的购物车实现中,首先我们需要创建一个Action类,这个类通常会对应于用户与购物车交互的各种操作,如添加商品、删除商品、更新商品数量等。Action类需要继承自Struts2提供的ActionSupport基类,并且...

    Struts2 应用程序示例

    2. **配置文件**:`struts.xml`是Struts2的核心配置文件,它定义了Action类、Action的执行方法、结果视图等。在这个例子中,你可以看到如何配置Action与URL的对应关系,以及Action执行后的跳转逻辑。 3. **JSP视图*...

    struts2验证框架示例

    此外,Struts2还支持XML配置验证规则,这使得验证逻辑可以从Action类中分离出来,增强代码的可维护性。在struts.xml配置文件中,我们可以这样定义: ```xml &lt;action name="userAction" class=...

    struts2的一个简单示例项目bookzilla

    3. **Action类和业务逻辑**:每个Action类都是Struts2控制器的一部分,它执行特定的操作并返回结果。Bookzilla项目可能包含如`BookListAction`这样的类,用于获取书籍列表。Action类通常包含业务逻辑,比如从数据库...

    Struts2示例2

    1. **Action与Result**:在Struts2中,Action类是处理用户请求的核心组件,它实现了业务逻辑。每个Action都有一个与之关联的结果(Result),定义了请求处理后的跳转目标,可以是另一个Action、JSP页面、静态资源等...

    Struts2学习示例

    struts2 示例 目的:构建struts2开发框架 适合:有一定struts2基础 实现:通过对用户信息的基本操作来给大家做个示范 1、struts2的搭建 2、web.xml文件的简单配置 3、struts.xml文件的简单配置 4、网站初始化工作...

    struts2示例程序

    在Struts2中,你可以创建一个简单的Java类并使用注解(如`@Action`)来标识它作为Action。Action类通常包含多个方法,每个方法对应用户界面的一个操作。 2. **配置文件**:在`struts.xml`或`struts-default.xml`等...

    Struts2使用示例源码

    学习这个示例源码,你可以了解如何配置Struts2框架,如何编写Action类,如何使用JSP页面展示结果,以及如何利用拦截器增强功能。这将有助于你在实际开发中更有效地利用Struts2构建高质量的Java web应用。

    Struts2+Spring简单示例

    "mySSH"可能指的是MySSH项目,这是一个基于Struts2和Spring的简单示例,可能包含了基础的CRUD操作。源码中可能包含了Action类、Service接口及实现、DAO接口及实现,以及相关的配置文件。通过阅读源码,你可以学习到...

Global site tag (gtag.js) - Google Analytics