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;
	}
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值