復(fù)選框和Struts2后臺交互代碼詳解
本文研究的主要是Struts框架中復(fù)選框的相關(guān)內(nèi)容。復(fù)選框在web開發(fā)中用的非常廣泛,具體介紹如下。
案例
如下圖,當(dāng)前為用戶選中的水果為"香蕉",點擊按鈕,跳轉(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());
/*獲取從前臺穿過來的字符串(注:這里必須去除空格,因為傳過來的每個值之間除了有逗號分隔符之外還都有空格,但是通過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ù)選框(水果),然后通過三目運算符去判斷當(dāng)前復(fù)選框是否被用戶選中,如果匹配,就勾選。
總結(jié)
以上就是本文關(guān)于復(fù)選框和Struts2后臺交互代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Spring Cloud之遠(yuǎn)程調(diào)用OpenFeign參數(shù)傳遞
本文介紹了Spring Cloud中使用OpenFeign進(jìn)行遠(yuǎn)程調(diào)用時,參數(shù)傳遞的不同方式,包括傳遞單個參數(shù)、多個參數(shù)、對象和JSON數(shù)據(jù),感興的朋友一起看看吧2025-03-03
Spring?Boot應(yīng)用程序中如何使用Keycloak詳解
這篇文章主要為大家介紹了Spring?Boot應(yīng)用程序中如何使用Keycloak詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
java中如何使用BufferedImage判斷圖像通道順序并轉(zhuǎn)RGB/BGR
這篇文章主要介紹了java中如何BufferedImage判斷圖像通道順序并轉(zhuǎn)RGB/BGR的相關(guān)資料,需要的朋友可以參考下2017-03-03
Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實現(xiàn)詳解
這篇文章主要介紹了Spring框架基于注解的AOP之各種通知的使用及其環(huán)繞通知,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
解決fastjson從1.1.41升級到1.2.28后報錯問題詳解
這篇文章主要介紹了解決fastjson從1.1.41升級到1.2.28后報錯問題詳解,需要的朋友可以參考下2020-02-02

