怎么在Java中使用Struts2实现一个复选框

本篇文章为大家展示了怎么在Java中使用Struts2实现一个复选框,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联是一家专业的成都网站建设公司,我们专注成都网站设计、成都网站制作、网络营销、企业网站建设,买友情链接1元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

怎么在Java中使用Struts2实现一个复选框

注:listKey相当于HTML中的value属性,这个值在和后台交互时才真正是我们在后台要使用的;listValue只是内容的显示而已。

案例1

用户选择了喜欢的课程,现在要对已经选择的课程进行修改,跳转到修改界面,然后回显已经勾选的课程。

用户已选课程界面:

怎么在Java中使用Struts2实现一个复选框

点击按钮后进入课程修改界面:

怎么在Java中使用Struts2实现一个复选框

注:在修改界面要对用户最初的选择进行回显。

代码实现!!!!

用户已选课程界面:

<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(" ", "");
		/*定义一个集合把用户所选择的课程存在集合中*/
		List<String> userCourses = new ArrayList<String>();
		/*遍历*/
		for (String str : courStrs.split(",")){
			userCourses.add(str);
		}
		/*把用户所选择的课程存在OGNL Context上下文中*/
		ActionContext.getContext().put("userCourses", userCourses);
		/*以集合的形式把所有复选框都传到结果页面进行展示,然后和用户所勾选的进行匹配*/
		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>

注:在修改界面,很简单就可以实现结果的回显,另外,list和value的值,我们只需要#属性名称的形式就可以获取,是因为我们在action中已经把对象存在了ActionContext即OGNLContext上下文中。

下面我们通过一个相似的案例来更接近的模拟开发环境:

用户选择自己的偶像(一个javaBean对象),然后同样是跳转到修改界面进行修改,在修改界面进行回显数据。

用户已选偶像界面:

怎么在Java中使用Struts2实现一个复选框

修改界面(要实现数据的回显)

怎么在Java中使用Struts2实现一个复选框

代码实现!!!

用户已选偶像界面:

<body> 
您的偶像: 
<form action="checkBoxListAction.action" method="post"> 
  <s:checkboxlist list="#{1:'邓小平',2:'习近平',3:'胡锦涛',4:'李克强'}" name="ids" listKey="key" listValue="value"/></br> 
  <input type="submit" value="我要修改"/> 
  </form> 
</body>

注:list为OGNL创建的Map集合。listKey相当于表单提交的真实value值,我们把Map的key传到后台进行处理。

javaBean对象:

public class User {
	/* 用户id */
	private Integer uid;
	/* 用户名 */
	private String uname;
	/* 无参构造函数 */
	public User() {
	}
	/* 构造函数 */
	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() {
		/*模拟从数据库中获取所有的偶像,传到前台展示,然后和用户选择的进行对比*/
		users = new ArrayList<User>();
		users.add(new User(1, "邓小平"));
		users.add(new User(2, "习近平"));
		users.add(new User(3, "胡锦涛"));
		users.add(new User(4, "李克强"));
		/*存到OGNL Context上下文中*/
		ActionContext.getContext().put("users", users);
		/*定义一个集合,用来存放用户所选的偶像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;
	}
}

修改界面(进行数据的回显):

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

注:listKey和listValue就是javaBean的两个属性,checkboxlist迭代时会将他们放在值栈中,所以不需要#命名空间的形式来获取,直接使用属性名称就可以获取,value的值为javaBean中uid的集合,自动进行匹配,然后选中对应的值。

附:

1.如果你的项目没有用到freemaker,却又出现了如下图所示的错误!

怎么在Java中使用Struts2实现一个复选框

上述内容就是怎么在Java中使用Struts2实现一个复选框,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

当前题目:怎么在Java中使用Struts2实现一个复选框
标题链接:https://www.cdcxhl.com/article10/pdgsgo.html

成都网站建设公司_创新互联,为您提供网站导航品牌网站设计网站内链网页设计公司网站营销外贸网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管