溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

復(fù)選框和Struts2后臺(tái)交互代碼詳解

發(fā)布時(shí)間:2020-09-09 19:03:05 來(lái)源:腳本之家 閱讀:174 作者:lavimer 欄目:編程語(yǔ)言

本文研究的主要是Struts框架中復(fù)選框的相關(guān)內(nèi)容。復(fù)選框在web開(kāi)發(fā)中用的非常廣泛,具體介紹如下。

案例

如下圖,當(dāng)前為用戶選中的水果為"香蕉",點(diǎn)擊按鈕,跳轉(zhuǎn)到修改界面進(jìn)行修改。

復(fù)選框和Struts2后臺(tái)交互代碼詳解

跳轉(zhuǎn)到修改界面后要回顯用戶的選擇(香蕉),然后由用戶再次進(jìn)行勾選,如圖:

復(fù)選框和Struts2后臺(tái)交互代碼詳解

前臺(tái)界面:

<body> 
 <form action="checBoxAction_test.action" method="post"> 
 請(qǐng)選擇您喜歡的水果:<br> 
 <input type="checkbox" name="fruits" value="香蕉"/>香蕉 
 <input type="checkbox" name="fruits" value="雪梨"/>雪梨 
 <input type="checkbox" name="fruits" value="西瓜"/>西瓜</br> 
  
 <input type="submit" value="跳轉(zhuǎn)到修改界面進(jìn)行修改"> 
 </form> 
 </body> 

后臺(tái)ChecBoxAction.java代碼:

public class ChecBoxAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	/*前臺(tái)通過(guò)復(fù)選框選中的水果名稱*/
	private String fruits;
	public String getFruits() {
		return fruits;
	}
	public void setFruits(String fruits) {
		this.fruits = fruits;
	}
	public String test(){
		/*沒(méi)去除空格之前*/
		System.out.println(this.getFruits());
		/*獲取從前臺(tái)穿過(guò)來(lái)的字符串(注:這里必須去除空格,因?yàn)閭鬟^(guò)來(lái)的每個(gè)值之間除了有逗號(hào)分隔符之外還都有空格,但是通過(guò)trim()的方式是去不掉空格的)*/
		//String fruitStr = this.getFruits().trim(); 
		/*必須如是這般才能去掉空格*/
		String fruitStr = this.getFruits().replaceAll(" ", "");
		System.out.println("去除空格之后的字符串:" + fruitStr);
		/*把字符串通過(guò)逗號(hào)分隔為一個(gè)字符串?dāng)?shù)組*/
		String[] fruit = fruitStr.split(",");
		/*遍歷所有的值,把它們存到一個(gè)集合中*/
		List<String> myFruits = new ArrayList<String>();
		for (int i=0; i<fruit.length; i++){
			myFruits.add(fruit[i]);
		}
		/*把用戶選中的復(fù)選框存到Map中發(fā)送到前臺(tái)*/
		ActionContext.getContext().put("myFruits", myFruits);
		/*模擬從數(shù)據(jù)庫(kù)中查出所有的值,在前臺(tái)展示,然后和用戶選中的進(jìn)行匹配*/
		List<String> list = new ArrayList<String>();
		list.add("香蕉");
		list.add("雪梨");
		list.add("西瓜");
		ActionContext.getContext().put("list", list);
		return this.SUCCESS;
	}
}

注:復(fù)選框向后臺(tái)傳值,傳過(guò)去的是一個(gè)字符串,且?guī)в锌崭?,所以必須去除空格,但是用trim()方法是去除不了的,使用trim()方法之后的效果。如下:

復(fù)選框和Struts2后臺(tái)交互代碼詳解

如圖,毫無(wú)效果!但是,我們可以使用replaceAll()方法,去替代空格,效果如下:

復(fù)選框和Struts2后臺(tái)交互代碼詳解

另外為了在修改界面展示所有的復(fù)選框(水果),我們?cè)贏ction中模擬從數(shù)據(jù)庫(kù)中取出所有的值,然后和用戶選擇的復(fù)選框一起傳到修改界面。

修改界面:

<body> 
 <form action="checBoxAction_test.action" method="post"> 
  您選擇的水果:<br> 
  <c:forEach items="${list}" var="list"> 
   
  <input type="checkbox" value="${list}"  
    <c:forEach items="${myFruits}" var="fr"> 
      ${fr == list ? "checked" : ""} 
    </c:forEach>  
  />${list} 
   
  </c:forEach> 
   
 </br> <input type="submit" value="修改"/> 
  </form> 
 </body> 

注:修改界面比較復(fù)雜,首先是遍歷所有復(fù)選框(水果),在每個(gè)浮選中又使用一個(gè)forEach循環(huán),去遍歷用戶選擇的所有復(fù)選框(水果),然后通過(guò)三目運(yùn)算符去判斷當(dāng)前復(fù)選框是否被用戶選中,如果匹配,就勾選。

總結(jié)

以上就是本文關(guān)于復(fù)選框和Struts2后臺(tái)交互代碼詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI