Struts2.0的action中的使用技巧:
Action中只是处理业务的逻辑,对服务层的业务方法进行调用的,和对象的组装;
所以action中尽量注册一个对应的服务层接口,然后每个业务,定义一个业务方法;所用的所有method,我们都是定义在了服务层中,然后通过服务层的接口进行调用的;
Action的使用:
1. 对于每个业务的实现成功之后,我们都要对message属性进行重新赋值方可;
2. 处理服务层中抛出的所有异常,并将异常信息放置到message属性中;
3. 使用WebManager来操作session、request、response方便;
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;
}
}
分享到:
相关推荐
开发者需要熟悉Struts框架中Action的概念及其工作原理,同时掌握JavaScript的基本语法和DOM操作技巧。在实际应用中,还需要注意安全性问题,比如防止跨站脚本攻击(XSS)等。此外,随着现代Web开发技术的发展,诸如...
### Entity Framework 4 In Action:全面解析与应用实践 #### 一、书籍概述与背景介绍 《Entity Framework 4 In Action》是一本深入探讨Entity Framework 4(简称EF4)的权威指南,由Stefano Mostarda、Marco De ...
- **操作符**:学习比较、算术、逻辑和位操作符,以及它们在程序中的应用。 - **流程控制**:掌握条件语句(if...else)、循环结构(for、while)以及开关语句(switch)。 2. **函数与对象** - **函数**:了解...
Hibernate是Java领域中流行的持久化框架,它简化了数据库操作,使得开发者可以专注于业务逻辑而不是数据库交互的细节。《Hibernate in Action》详细讲解了Hibernate的核心概念,如对象关系映射(ORM)、Session管理...
在本书中,读者将全面了解Webwork的核心概念和实践技巧,包括Action、Interceptor、ValueStack、OGNL表达式等核心组件。Action是Webwork框架的基础,负责处理用户的请求并调用业务逻辑;Interceptor则提供了一种灵活...
在书中,作者深入浅出地介绍了Struts的核心概念和实践技巧,涵盖了从基础到高级的各个层面。首先,书中的"源码"部分可能会探讨Struts框架的内部工作原理,包括Action、Form Bean、Controller Servlet、Tiles和国际化...
在函数式编程方面,《Kotlin in Action》涵盖了高阶函数、lambda表达式、匿名函数以及集合操作等主题。这些功能使得Kotlin能够进行简洁高效的代码编写,尤其在处理数据操作时。此外,本书还特别强调了null安全性和...
《Entity Framework Core in Action》第二版是一本深入探讨Entity Framework Core(简称EF Core)的实战指南。Entity Framework Core是微软开发的一个开源对象关系映射(ORM)框架,用于.NET Core和.NET Standard...
- **基础操作**:包括创建站点、添加Portlets等基础操作。 - **Portlet开发**:教授如何开发自定义Portlet来扩展Liferay的功能。 #### 四、第二部分:在Liferay平台上编写应用程序 **3. 数据驱动的Portlet易于实现...
1. R语言入门:介绍了R的基本概念、安装与环境配置,以及如何使用R进行简单的数据操作和基本函数。 2. 创建数据集:这部分讲述了如何在R中创建数据集,包括数据的输入、输出以及数据类型和结构的介绍。 3. 图形入门...
《D3.js in Action Second Edition》是D3.js领域的经典之作,由Mike Bostock、Brett St Clair和Aric A. Miller合作撰写,于2018年推出了全新的第二版。这本书旨在帮助读者深入理解和掌握D3.js,这是一个强大的...
《iText in Action.pdf》是一本专注于Java平台上的PDF处理库——iText的学习指南。这本书深入浅出地介绍了如何利用...通过阅读《iText in Action》并结合实际操作,你将能够熟练运用iText解决各种PDF相关的开发问题。
《Pojos In Action》详细介绍了Spring框架和Hibernate持久层框架的使用技巧,特别是在构建企业级应用时的集成策略。书中涵盖了从数据定义到业务逻辑处理,再到用户界面呈现的整个流程,为读者提供了全面而深入的技术...
2. **Action**:实现了业务逻辑处理,每个Action对应一个用户操作,负责接收ActionForm对象中的数据,处理后调用Service层进行业务处理,最后转发到特定的视图。 3. **ActionForm**:用于在Controller和View之间...
《Spring in Action》一书不仅介绍了Spring框架的基础知识,还深入探讨了其在业务层和Web层的应用。书中通过实际案例,展示了如何使用Spring框架来构建高性能、高可用性的企业级应用。无论是对于初学者还是有经验的...
- **书名含义**:“Entity Framework 4 in Action”这一书名意味着本书旨在通过实践的方式介绍如何使用Entity Framework 4进行数据库操作。 - **适用对象**:本书适合希望快速学习Entity Framework 4的开发人员、...
总结,《WebWork In Action》这本书全面介绍了WebWork框架的各个方面,从基本概念到高级特性,从实战技巧到最佳实践,对于想要掌握或深入了解WebWork的开发者来说,是一本不可多得的参考资料。通过学习WebWork,...
本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置技巧,通过丰富的示例,展示了如何在实际项目中运用Mule进行高效的数据传输与处理。 ### 核心概念:Mule的解构 #### ESB与EAI...