`
I_am_kevin
  • 浏览: 145374 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Action层的操作技巧

 
阅读更多

Struts2.0action中的使用技巧:

Action中只是处理业务的逻辑,对服务层的业务方法进行调用的,和对象的组装;

所以action中尽量注册一个对应的服务层接口,然后每个业务,定义一个业务方法;所用的所有method,我们都是定义在了服务层中,然后通过服务层的接口进行调用的;

Action的使用:

1.     对于每个业务的实现成功之后,我们都要对message属性进行重新赋值方可;

2.      处理服务层中抛出的所有异常,并将异常信息放置到message属性中;

3.     使用WebManager来操作sessionrequestresponse方便;

4.     对于开发过程中,我们对于异常,还要使用e.printstartMessage,打印到控制台中,而在开发结束之后,我们要讲这个控制台打印去掉;

5.     开发过程中,要按ctrl+s进行保存,顺便进行代码的格式化;

 

 

====>具体事例:

/**
 * 投票问题Action
 * 
 * @author hl
 */
public class VoteAction extends ADefaultAction {

	//接口
	private Vote voteService ;
	
	//数据字段
	private Long voteId;
	private String voteContent ;
	private Date voteAddTime;
	private Date voteEndTime;
	
	//数据集合和对象
	private List<LottVotePojo> voteList ;
	private LottVotePojo votePojo = new LottVotePojo();
	
	//消息
	private String message;
	private String pageTool ;

	public VoteAction(){
		// 设置分页
		setPageSize(15);
		setPage(1);
	}
	//添加投票
	public String addVote(){
		int compare = voteEndTime.compareTo(voteAddTime) ;
		if(compare < 0){
			this.message = "添加日期不能小于结束日期!";
			return this.ERROR;
		}		
		votePojo.setVoteContent(voteContent);
		votePojo.setVoteAddTime(voteAddTime);
		votePojo.setVoteEndTime(voteEndTime);
		try {
			voteService.addLottVotePojo(votePojo);
			this.message = "vote添加成功!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			this.message = e.getMessage();
			return this.ERROR;
		}
		voteContent = "";
		return this.SUCCESS;
	}
	//初始化列表
	public String initList(){
		try{
			// 设置总记录数
			this.setRsCount(voteService.listForPageVoteInfoCount(voteContent));
			// 生成分页字符串
			pageTool = getSplitPage().getSplitPage(getRsCount(), getPageSize(), getPage(), "");
			// 加载数据
			voteList = voteService.listForPageLottVotePojo(voteContent, this.getPage(), this.getPageSize());
		}catch(Exception e){
			this.message = e.getMessage();
			return this.ERROR;
		}
		return this.SUCCESS;
	}
	
	//初始化编辑页面
	public String initEdit(){
		try {
			votePojo = voteService.getVotePojoByVoteId(voteId);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			this.message = e.getMessage();
			return this.ERROR;
		}
		return this.SUCCESS;
	}
	//编辑vote
	public String editVote(){
		int compare = voteEndTime.compareTo(voteAddTime) ;
		if(compare < 0){
			this.message = "添加日期不能小于结束日期!";
			return this.ERROR;
		}		
		votePojo.setVoteContent(voteContent);
		votePojo.setVoteAddTime(voteAddTime);
		votePojo.setVoteEndTime(voteEndTime);
		votePojo.setVoteId(voteId);
		try {
			voteService.editLottVotePojo(votePojo);
			this.message = "vote编辑成功";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			this.message = e.getMessage();
			return this.ERROR;
		}
		voteContent = "";
		return this.SUCCESS;
	}
	//删除vote
	public String delVote(){
		try {
			voteService.deleteLottVotePojo(voteService.getVotePojoByVoteId(voteId));
			this.message = "vote删除成功";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			this.message = e.getMessage();
			return this.ERROR;
		}
		return this.SUCCESS;
	}
	
	//setter getter
	public Vote getVoteService() {
		return voteService;
	}

	public void setVoteService(Vote voteService) {
		this.voteService = voteService;
	}

	public Long getVoteId() {
		return voteId;
	}

	public void setVoteId(Long voteId) {
		this.voteId = voteId;
	}

	public String getVoteContent() {
		try {
		    return new String(voteContent.getBytes("iso-8859-1"), "utf-8");
		} catch (UnsupportedEncodingException e) {
		    // TODO Auto-generated catch block
		    e.printStackTrace();
		}
		return "";
	}

	public void setVoteContent(String voteContent) {
		this.voteContent = voteContent;
	}

	public Date getVoteAddTime() {
		return voteAddTime;
	}

	public void setVoteAddTime(Date voteAddTime) {
		this.voteAddTime = voteAddTime;
	}

	public Date getVoteEndTime() {
		return voteEndTime;
	}

	public void setVoteEndTime(Date voteEndTime) {
		this.voteEndTime = voteEndTime;
	}

	public List<LottVotePojo> getVoteList() {
		return voteList;
	}

	public void setVoteList(List<LottVotePojo> voteList) {
		this.voteList = voteList;
	}

	public LottVotePojo getVotePojo() {
		return votePojo;
	}

	public void setVotePojo(LottVotePojo votePojo) {
		this.votePojo = votePojo;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	} 
	public String getPageTool() {
		return pageTool;
	}
	public void setPageTool(String pageTool) {
		this.pageTool = pageTool;
	}
}

 

 

 

 

1
1
分享到:
评论

相关推荐

    JS调用Struts中的Action

    开发者需要熟悉Struts框架中Action的概念及其工作原理,同时掌握JavaScript的基本语法和DOM操作技巧。在实际应用中,还需要注意安全性问题,比如防止跨站脚本攻击(XSS)等。此外,随着现代Web开发技术的发展,诸如...

    Entity Framework 4 In Action

    ### Entity Framework 4 In Action:全面解析与应用实践 #### 一、书籍概述与背景介绍 《Entity Framework 4 In Action》是一本深入探讨Entity Framework 4(简称EF4)的权威指南,由Stefano Mostarda、Marco De ...

    Action Script 2.0 教程 PDF

    - **操作符**:学习比较、算术、逻辑和位操作符,以及它们在程序中的应用。 - **流程控制**:掌握条件语句(if...else)、循环结构(for、while)以及开关语句(switch)。 2. **函数与对象** - **函数**:了解...

    Hibernate in action, Spring in Action, Struts In Action

    Hibernate是Java领域中流行的持久化框架,它简化了数据库操作,使得开发者可以专注于业务逻辑而不是数据库交互的细节。《Hibernate in Action》详细讲解了Hibernate的核心概念,如对象关系映射(ORM)、Session管理...

    Webwork.in.action最新中文版

    在本书中,读者将全面了解Webwork的核心概念和实践技巧,包括Action、Interceptor、ValueStack、OGNL表达式等核心组件。Action是Webwork框架的基础,负责处理用户的请求并调用业务逻辑;Interceptor则提供了一种灵活...

    Struts in Action

    在书中,作者深入浅出地介绍了Struts的核心概念和实践技巧,涵盖了从基础到高级的各个层面。首先,书中的"源码"部分可能会探讨Struts框架的内部工作原理,包括Action、Form Bean、Controller Servlet、Tiles和国际化...

    Manning.Kotlin.in.Action.

    在函数式编程方面,《Kotlin in Action》涵盖了高阶函数、lambda表达式、匿名函数以及集合操作等主题。这些功能使得Kotlin能够进行简洁高效的代码编写,尤其在处理数据操作时。此外,本书还特别强调了null安全性和...

    Entity Framework Core in Action 2nd Edition

    《Entity Framework Core in Action》第二版是一本深入探讨Entity Framework Core(简称EF Core)的实战指南。Entity Framework Core是微软开发的一个开源对象关系映射(ORM)框架,用于.NET Core和.NET Standard...

    liferay in action.pdf

    - **基础操作**:包括创建站点、添加Portlets等基础操作。 - **Portlet开发**:教授如何开发自定义Portlet来扩展Liferay的功能。 #### 四、第二部分:在Liferay平台上编写应用程序 **3. 数据驱动的Portlet易于实现...

    R in action

    1. R语言入门:介绍了R的基本概念、安装与环境配置,以及如何使用R进行简单的数据操作和基本函数。 2. 创建数据集:这部分讲述了如何在R中创建数据集,包括数据的输入、输出以及数据类型和结构的介绍。 3. 图形入门...

    D3.js in Action Second Edition D3.js实战 2018年最新版 原书第二版 pdf格式 386页

    《D3.js in Action Second Edition》是D3.js领域的经典之作,由Mike Bostock、Brett St Clair和Aric A. Miller合作撰写,于2018年推出了全新的第二版。这本书旨在帮助读者深入理解和掌握D3.js,这是一个强大的...

    iText.in .action.pdf

    《iText in Action.pdf》是一本专注于Java平台上的PDF处理库——iText的学习指南。这本书深入浅出地介绍了如何利用...通过阅读《iText in Action》并结合实际操作,你将能够熟练运用iText解决各种PDF相关的开发问题。

    Manning - Pojos In Action.pdf

    《Pojos In Action》详细介绍了Spring框架和Hibernate持久层框架的使用技巧,特别是在构建企业级应用时的集成策略。书中涵盖了从数据定义到业务逻辑处理,再到用户界面呈现的整个流程,为读者提供了全面而深入的技术...

    Struts in Action 中文版

    2. **Action**:实现了业务逻辑处理,每个Action对应一个用户操作,负责接收ActionForm对象中的数据,处理后调用Service层进行业务处理,最后转发到特定的视图。 3. **ActionForm**:用于在Controller和View之间...

    Spring_in_Action.pdf

    《Spring in Action》一书不仅介绍了Spring框架的基础知识,还深入探讨了其在业务层和Web层的应用。书中通过实际案例,展示了如何使用Spring框架来构建高性能、高可用性的企业级应用。无论是对于初学者还是有经验的...

    Entity Framework 4 in Action

    - **书名含义**:“Entity Framework 4 in Action”这一书名意味着本书旨在通过实践的方式介绍如何使用Entity Framework 4进行数据库操作。 - **适用对象**:本书适合希望快速学习Entity Framework 4的开发人员、...

    WebWork In Action

    总结,《WebWork In Action》这本书全面介绍了WebWork框架的各个方面,从基本概念到高级特性,从实战技巧到最佳实践,对于想要掌握或深入了解WebWork的开发者来说,是一本不可多得的参考资料。通过学习WebWork,...

    Mule in action下载(英文版)

    本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置技巧,通过丰富的示例,展示了如何在实际项目中运用Mule进行高效的数据传输与处理。 ### 核心概念:Mule的解构 #### ESB与EAI...

Global site tag (gtag.js) - Google Analytics