最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java框架學(xué)習(xí)Struts2復(fù)選框?qū)嵗a

 更新時(shí)間:2023年08月11日 11:11:33   作者:lavimer  
這篇文章主要介紹了Java框架學(xué)習(xí)Struts2復(fù)選框?qū)嵗a,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

復(fù)選框在Web開(kāi)發(fā)中使用的非常多,現(xiàn)在我們通過(guò)struts2的復(fù)選框標(biāo)簽來(lái)實(shí)現(xiàn)一些在開(kāi)發(fā)中經(jīng)常遇到的問(wèn)題。

先來(lái)看看這個(gè)標(biāo)簽的屬性:

注:listKey相當(dāng)于HTML中的value屬性,這個(gè)值在和后臺(tái)交互時(shí)才真正是我們?cè)诤笈_(tái)要使用的;listValue只是內(nèi)容的顯示而已。

案例1

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

用戶已選課程界面:

點(diǎn)擊按鈕后進(jìn)入課程修改界面:

注:在修改界面要對(duì)用戶最初的選擇進(jìn)行回顯。

代碼實(shí)現(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(" ", "");
		/*定義一個(gè)集合把用戶所選擇的課程存在集合中*/
		List<String> userCourses = new ArrayList<String>();
		/*遍歷*/
		for (String str : courStrs.split(",")){
			userCourses.add(str);
		}
		/*把用戶所選擇的課程存在OGNL Context上下文中*/
		ActionContext.getContext().put("userCourses", userCourses);
		/*以集合的形式把所有復(fù)選框都傳到結(jié)果頁(yè)面進(jìn)行展示,然后和用戶所勾選的進(jìn)行匹配*/
		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> 

注:在修改界面,很簡(jiǎn)單就可以實(shí)現(xiàn)結(jié)果的回顯,另外,list和value的值,我們只需要#屬性名稱(chēng)的形式就可以獲取,是因?yàn)槲覀冊(cè)赼ction中已經(jīng)把對(duì)象存在了ActionContext即OGNLContext上下文中。

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

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

用戶已選偶像界面:

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

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

用戶已選偶像界面:

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

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

javaBean對(duì)象:

public class User {
	/* 用戶id */
	private Integer uid;
	/* 用戶名 */
	private String uname;
	/* 無(wú)參構(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ù)庫(kù)中獲取所有的偶像,傳到前臺(tái)展示,然后和用戶選擇的進(jìn)行對(duì)比*/
		users = new ArrayList<User>();
		users.add(new User(1, "鄧"));
		users.add(new User(2, "習(xí)"));
		users.add(new User(3, "胡"));
		users.add(new User(4, "李"));
		/*存到OGNL Context上下文中*/
		ActionContext.getContext().put("users", users);
		/*定義一個(gè)集合,用來(lái)存放用戶所選的偶像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;
	}
}

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

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

注:listKey和listValue就是javaBean的兩個(gè)屬性,checkboxlist迭代時(shí)會(huì)將他們放在值棧中,所以不需要#命名空間的形式來(lái)獲取,直接使用屬性名稱(chēng)就可以獲取,value的值為javaBean中uid的集合,自動(dòng)進(jìn)行匹配,然后選中對(duì)應(yīng)的值。

附:

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

那么,恭喜你,是因?yàn)槟愕膕truts2標(biāo)簽沒(méi)有name屬性導(dǎo)致?。。?!(淚的教訓(xùn)啊,被它坑了兩個(gè)小時(shí)!)

總結(jié)

以上就是本文關(guān)于Java框架學(xué)習(xí)Struts2復(fù)選框?qū)嵗a的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 利用Spring框架為自己的校園卡充值(推薦)

    利用Spring框架為自己的校園卡充值(推薦)

    這篇文章主要介紹了利用Spring框架為自己的校園卡充值,本次實(shí)驗(yàn)主要運(yùn)用了Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)等知識(shí),通過(guò)利用Spring框架編寫(xiě)Java程序,實(shí)現(xiàn)學(xué)生卡的單次充值,如需對(duì)學(xué)生卡進(jìn)行多次充值,可將部分代碼修改即可實(shí)現(xiàn),需要的朋友可以參考下
    2022-10-10
  • RecyclerChart的KLine的繪制

    RecyclerChart的KLine的繪制

    這篇文章主要為大家介紹了RecyclerChart的KLine的繪制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

    一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

    這篇文章主要給大家介紹了如何通過(guò)一篇文章弄懂Java和Kotlin的泛型難點(diǎn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SpringBoot整合Hutool實(shí)現(xiàn)文件上傳的使用示例

    SpringBoot整合Hutool實(shí)現(xiàn)文件上傳的使用示例

    文件上傳在項(xiàng)目經(jīng)常會(huì)用到,本文主要介紹了SpringBoot整合Hutool實(shí)現(xiàn)文件上傳的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Spring初始化和銷(xiāo)毀的實(shí)現(xiàn)方法

    Spring初始化和銷(xiāo)毀的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring初始化和銷(xiāo)毀的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 解決mybatis 中collection嵌套collection引發(fā)的bug

    解決mybatis 中collection嵌套collection引發(fā)的bug

    這篇文章主要介紹了解決mybatis 中collection嵌套collection引發(fā)的bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • SpringBoot整合ActiveMQ的詳細(xì)步驟

    SpringBoot整合ActiveMQ的詳細(xì)步驟

    昨天仔細(xì)研究了activeMQ消息隊(duì)列,也遇到了些坑,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合ActiveMQ的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • java打印指定年月的日歷

    java打印指定年月的日歷

    這篇文章主要為大家詳細(xì)介紹了Java如何打印指定年月的日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 原理分析Java?Mybatis中的Mapper

    原理分析Java?Mybatis中的Mapper

    這篇文章主要為大家介紹了Java?Mybatis中的Mapper,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • java9開(kāi)始——接口中可以定義private私有方法

    java9開(kāi)始——接口中可以定義private私有方法

    這篇文章主要介紹了從java9開(kāi)始 接口中可以定義private私有方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論

富源县| 伊通| 左云县| 青海省| 新邵县| 德阳市| 邢台县| 浮山县| 宝清县| 锡林浩特市| 攀枝花市| 辽源市| 万安县| 武城县| 新泰市| 商城县| 昌宁县| 赣州市| 沈阳市| 天气| 黄龙县| 黄冈市| 江阴市| 太保市| 兰坪| 揭阳市| 金溪县| 洛浦县| 鄂州市| 平山县| 新丰县| 任丘市| 恩施市| 准格尔旗| 康定县| 孙吴县| 丰都县| 阜新市| 洪湖市| 揭西县| 宝鸡市|