欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年02月07日 11:39:45   作者:lavimer  
這篇文章主要介紹了復(fù)選框和Struts2后臺交互代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

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

案例

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

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

前臺界面:

<body> 
 <form action="checBoxAction_test.action" method="post"> 
 請選擇您喜歡的水果:<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> 

后臺ChecBoxAction.java代碼:

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

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

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

另外為了在修改界面展示所有的復(fù)選框(水果),我們在Action中模擬從數(shù)據(jù)庫中取出所有的值,然后和用戶選擇的復(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ù)選框(水果),在每個浮選中又使用一個forEach循環(huán),去遍歷用戶選擇的所有復(fù)選框(水果),然后通過三目運(yùn)算符去判斷當(dāng)前復(fù)選框是否被用戶選中,如果匹配,就勾選。

總結(jié)

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

相關(guān)文章

  • java實(shí)現(xiàn)圖片裁切的工具類實(shí)例

    java實(shí)現(xiàn)圖片裁切的工具類實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)圖片裁切的工具類實(shí)例,涉及Java針對圖片的讀取、修改等相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Java Spring注解之@Async的基本用法和示例

    Java Spring注解之@Async的基本用法和示例

    Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持,通過在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用,下面這篇文章主要給大家介紹了關(guān)于Java Spring注解之@Async的基本用法和示例,需要的朋友可以參考下
    2022-03-03
  • SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法

    SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法

    本文主要介紹了SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 使用Apache Spark進(jìn)行Java數(shù)據(jù)分析的步驟詳解

    使用Apache Spark進(jìn)行Java數(shù)據(jù)分析的步驟詳解

    今天我們將探討如何使用Apache Spark進(jìn)行Java數(shù)據(jù)分析,Apache Spark是一個強(qiáng)大的大數(shù)據(jù)處理引擎,它支持批處理和流處理,特別適合處理大規(guī)模數(shù)據(jù)集,在Java中使用Spark,我們可以利用其強(qiáng)大的數(shù)據(jù)處理能力來進(jìn)行各種數(shù)據(jù)分析任務(wù),需要的朋友可以參考下
    2024-07-07
  • Java Swing組件下拉菜單控件JComboBox用法示例

    Java Swing組件下拉菜單控件JComboBox用法示例

    這篇文章主要介紹了Java Swing組件下拉菜單控件JComboBox用法,結(jié)合具體實(shí)例形式分析了Swing組件下拉菜單控件JComboBox的具體定義、使用方法及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2017-11-11
  • Java中File、Base64、MultipartFile之間相互轉(zhuǎn)換的代碼詳解

    Java中File、Base64、MultipartFile之間相互轉(zhuǎn)換的代碼詳解

    File、Base64和MultipartFile都是在編程中常用的類或者數(shù)據(jù)類型,用于處理文件和數(shù)據(jù)的存儲、傳輸和轉(zhuǎn)換等操作,本文將給大家介紹了Java中File、Base64、MultipartFile之間相互轉(zhuǎn)換,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)

    mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)

    這篇文章主要為大家介紹了mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • SpringCloud中的Feign詳解

    SpringCloud中的Feign詳解

    這篇文章主要介紹了SpringCloud中的Feign詳解,Feign是一個聲明式的Web Service客戶端,以Java接口注解的方式調(diào)用Http請求,同時Feign整合了Ribbon和Hystrix,實(shí)現(xiàn)負(fù)載均衡與容斷功能,需要的朋友可以參考下
    2023-09-09
  • 以武俠形式理解Java LinkedList源碼

    以武俠形式理解Java LinkedList源碼

    鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點(diǎn)里存到下一個節(jié)點(diǎn)的地址
    2021-11-11
  • MyBatis詳細(xì)講解DAO代理的使用

    MyBatis詳細(xì)講解DAO代理的使用

    MyBatis允許只聲明一個dao接口,而無需寫dao實(shí)現(xiàn)類的方式實(shí)現(xiàn)數(shù)據(jù)庫操作。前提是必須保證Mapper文件中的<mapper>標(biāo)簽的namespace屬性值必須要和dao接口的類路徑一致,MyBatis容器會自動通過動態(tài)代理生成接口的實(shí)現(xiàn)類
    2022-04-04

最新評論