08 02Struts 2.x多业务处理

1 Struts 2.x多业务处理

所有的开发之中,每一个Action都要同时处理多个操作请求,所以来讲在Struts 2.x里面依然支持多业务的操作,那么下面为了更好的观察出问题,重新建立新的Action以及VO类。
范例:定义一个新闻的VO类

package org.lks.vo;

import java.io.Serializable;

@SuppressWarnings("serial")
public class News implements Serializable {
	private Integer nid;
	private String ntitle;
	private String ncontent;
}

随后建立一个NewsAction,这个Action要求可以多业务处理,如果写多业务处理的话,就不要使用execute()方法。
范例:定义NewsAction

package org.lks.action;

import org.lks.vo.News;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class NewsAction extends ActionSupport {

	private News news = new News();
	
	public News getNews() {
		return news;
	}
	
	public void list() {
		System.out.println("[list]");
	}
	
	public String update() {
		System.out.println("[update]");
		return null;
	}
	
	public void insert(){
		System.out.println("[insert]");
	}
}

随后进行struts.xml文件的配置操作。
范例:定义struts.xml文件

<action name="NewsAction_*" class="org.lks.action.NewsAction" method="{1}"></action>

如果现在要执行的是增加操作,则路径使用:NewsAction_insert.action,如果使用修改操作使用:NewsAction_update.action,依次类推。

可以发现在Struts 2.x之中,每一次执行的时候实际上都会重新生成新的Action对象,所以里面的内容不会出现从上一次请求一直沿用到本次请求的情况。这一点是是要比Struts 1.x更加优秀。

如果说此时你的项目开发使用的是基于配置文件完成的,这样的配置完全可用,而且也可以发现在整个的Action里面是否方法要返回结果都由用户自己来决定,可是在现在的开发之中(Struts 2.x比Struts 1.x优秀的地方在于它支持Annotation配置)都会使用Annotation来完成配置,一旦用了Annotation,那么无法配置method参数。如果现在不能够配置method参数,那么就需要换另外一种形式访问。
范例:修改struts.xml文件的定义

<action name="NewsAction" class="org.lks.action.NewsAction"></action>

此时可以利用!完成,例如:要访问增加操作NewsAction!insert.action、修改NewsAction!update.action

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章