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

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