怎么在Java中使用Struts2實現(xiàn)一個復選框

本篇文章為大家展示了怎么在Java中使用Struts2實現(xiàn)一個復選框,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設公司,我們專注成都網(wǎng)站設計、成都網(wǎng)站制作、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,買友情鏈接1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

怎么在Java中使用Struts2實現(xiàn)一個復選框

注:listKey相當于HTML中的value屬性,這個值在和后臺交互時才真正是我們在后臺要使用的;listValue只是內(nèi)容的顯示而已。

案例1

用戶選擇了喜歡的課程,現(xiàn)在要對已經(jīng)選擇的課程進行修改,跳轉(zhuǎn)到修改界面,然后回顯已經(jīng)勾選的課程。

用戶已選課程界面:

怎么在Java中使用Struts2實現(xiàn)一個復選框

點擊按鈕后進入課程修改界面:

怎么在Java中使用Struts2實現(xiàn)一個復選框

注:在修改界面要對用戶最初的選擇進行回顯。

代碼實現(xiàn)!!!!

用戶已選課程界面:

<body> 
您的課程: 
<form action="checkBoxAction_test.action" method="post"> 
  <s:checkboxlist list="{'Java','.Net','PHP','C++'}" name="courses" /></br> 
  <input type="submit" value="我要修改"/> 
  </form> 
</body>

action代碼:

public class CheckBoxAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	/*用戶所選擇的課程(字符串,要去空格)*/
	private String courses;
	public String getCourses() {
		return courses;
	}
	public void setCourses(String courses) {
		this.courses = courses;
	}
	public String test(){
		/*去空格【必須用這種方式去空格,trim()這種方式不管用】*/
		String courStrs = this.courses.replaceAll(" ", "");
		/*定義一個集合把用戶所選擇的課程存在集合中*/
		List<String> userCourses = new ArrayList<String>();
		/*遍歷*/
		for (String str : courStrs.split(",")){
			userCourses.add(str);
		}
		/*把用戶所選擇的課程存在OGNL Context上下文中*/
		ActionContext.getContext().put("userCourses", userCourses);
		/*以集合的形式把所有復選框都傳到結(jié)果頁面進行展示,然后和用戶所勾選的進行匹配*/
		List<String> cous = new ArrayList<String>();
		cous.add("Java");
		cous.add(".Net");
		cous.add("PHP");
		cous.add("C++");
		/*把所有課程存在OGNL Context上下文中*/
		ActionContext.getContext().put("cous", cous);
		return this.SUCCESS;
	}
}

修改界面:

 <body> 
  您所選擇的課程為: 
<s:checkboxlist name="courses" list="#cous" value="#userCourses" />   
 </body>

注:在修改界面,很簡單就可以實現(xiàn)結(jié)果的回顯,另外,list和value的值,我們只需要#屬性名稱的形式就可以獲取,是因為我們在action中已經(jīng)把對象存在了ActionContext即OGNLContext上下文中。

下面我們通過一個相似的案例來更接近的模擬開發(fā)環(huán)境:

用戶選擇自己的偶像(一個javaBean對象),然后同樣是跳轉(zhuǎn)到修改界面進行修改,在修改界面進行回顯數(shù)據(jù)。

用戶已選偶像界面:

怎么在Java中使用Struts2實現(xiàn)一個復選框

修改界面(要實現(xiàn)數(shù)據(jù)的回顯)

怎么在Java中使用Struts2實現(xiàn)一個復選框

代碼實現(xiàn)?。?!

用戶已選偶像界面:

<body> 
您的偶像: 
<form action="checkBoxListAction.action" method="post"> 
  <s:checkboxlist list="#{1:'鄧小平',2:'習近平',3:'胡錦濤',4:'李克強'}" name="ids" listKey="key" listValue="value"/></br> 
  <input type="submit" value="我要修改"/> 
  </form> 
</body>

注:list為OGNL創(chuàng)建的Map集合。listKey相當于表單提交的真實value值,我們把Map的key傳到后臺進行處理。

javaBean對象:

public class User {
	/* 用戶id */
	private Integer uid;
	/* 用戶名 */
	private String uname;
	/* 無參構(gòu)造函數(shù) */
	public User() {
	}
	/* 構(gòu)造函數(shù) */
	public User(Integer uid, String uname) {
		this.uid = uid;
		this.uname = uname;
	}
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
}

action代碼:

public class CheckBoxListAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	/* 偶像集合 */
	private List<User> users;
	/* 偶像id字符串 */
	private String ids;
	public List<User> getUsers() {
		return users;
	}
	public void setUsers(List<User> users) {
		this.users = users;
	}
	public String getIds() {
		return ids;
	}
	public void setIds(String ids) {
		this.ids = ids;
	}
	public String execute() {
		/*模擬從數(shù)據(jù)庫中獲取所有的偶像,傳到前臺展示,然后和用戶選擇的進行對比*/
		users = new ArrayList<User>();
		users.add(new User(1, "鄧小平"));
		users.add(new User(2, "習近平"));
		users.add(new User(3, "胡錦濤"));
		users.add(new User(4, "李克強"));
		/*存到OGNL Context上下文中*/
		ActionContext.getContext().put("users", users);
		/*定義一個集合,用來存放用戶所選的偶像id的集合*/
		List<Integer> userIds = new ArrayList<Integer>();
		/*獲取用戶所勾選的ids,去除空格【必須用這種方式,trim()方法不管用】*/
		ids = ids.replaceAll(" ", "");
		/*迭代*/
		for (String str : ids.split(",")){
			userIds.add(Integer.valueOf(str));
		}
		/*把id存到OGNL上下文集合中*/
		ActionContext.getContext().put("userIds", userIds);
		return this.SUCCESS;
	}
}

修改界面(進行數(shù)據(jù)的回顯):

<body> 
  您的偶像為: 
<s:checkboxlist name="users" list="#users" listKey="uid" listValue="uname" value="#userIds"/>   
 </body>

注:listKey和listValue就是javaBean的兩個屬性,checkboxlist迭代時會將他們放在值棧中,所以不需要#命名空間的形式來獲取,直接使用屬性名稱就可以獲取,value的值為javaBean中uid的集合,自動進行匹配,然后選中對應的值。

附:

1.如果你的項目沒有用到freemaker,卻又出現(xiàn)了如下圖所示的錯誤!

怎么在Java中使用Struts2實現(xiàn)一個復選框

上述內(nèi)容就是怎么在Java中使用Struts2實現(xiàn)一個復選框,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前題目:怎么在Java中使用Struts2實現(xiàn)一個復選框
標題鏈接:http://muchs.cn/article10/pdgsgo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航品牌網(wǎng)站設計、網(wǎng)站內(nèi)鏈網(wǎng)頁設計公司、網(wǎng)站營銷外貿(mào)網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管