本文研究的主要是Struts框架中復選框的相關內容。複選框在web開發中用的非常廣泛,具體介紹如下。
如下圖,當前為用戶選中的水果為"香蕉",點擊按鈕,跳轉到修改界面進行修改。
跳轉到修改界面後要回顯用戶的選擇(香蕉),然後由用戶再次進行勾選,如圖:
前台界面:
<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="跳轉到修改界面進行修改"> </form> </body>
後台ChecBoxAction.java代碼:
public class ChecBoxAction extends ActionSupport {private static final long serialVersionUID = 1L;/*前台通過複選框選中的水果名稱*/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);/*把字符串通過逗號分隔為一個字符串數組*/String[] fruit = fruitStr.split(",");/*遍歷所有的值,把它們存到一個集合中*/List<String> myFruits = new ArrayList<String>();for (int i=0; i<fruit.length; i++){myFruits.add(fruit[i]);}/*把用戶選中的複選框存到Map中發送到前台*/ActionContext.getContext().put("myFruits", myFruits);/*模擬從數據庫中查出所有的值,在前台展示,然後和用戶選中的進行匹配*/List<String> list = new ArrayList<String>();list.add("香蕉");list.add("雪梨");list.add("西瓜");ActionContext.getContext().put("list", list);return this.SUCCESS;}}注:複選框向後台傳值,傳過去的是一個字符串,且帶有空格,所以必須去除空格,但是用trim()方法是去除不了的,使用trim()方法之後的效果。如下:
如圖,毫無效果!但是,我們可以使用replaceAll()方法,去替代空格,效果如下:
另外為了在修改界面展示所有的複選框(水果),我們在Action中模擬從數據庫中取出所有的值,然後和用戶選擇的複選框一起傳到修改界面。
修改界面:
<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>注:修改界面比較複雜,首先是遍歷所有復選框(水果),在每個浮選中又使用一個forEach循環,去遍歷用戶選擇的所有復選框(水果),然後通過三目運算符去判斷當前複選框是否被用戶選中,如果匹配,就勾選。
以上就是本文關於復選框和Struts2後台交互代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!