Java框架学习Struts2复选框实例代码

网友投稿 248 2023-02-18


Java框架学习Struts2复选框实例代码

复选框在Web开发中使用的非常多,现在我们通过struts2的复选框标签来实现一些在开发中经常遇到的问题。

先来看看这个标签的属性:

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

案例1

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

用户已选课程界面:

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

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

代码实现!!!!

用户已选课程界面:

您的课程:

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 userCourses = new ArrayList();

/*遍历*/

for (String str : courStrs.split(",")){

userCourses.add(str);

}

/*把用户所选择的课程存在OGNL Context上下文中*/

ActionContext.getContext().put("userCourses", userCourses);

/*以集合的形式把所有复选框都传到结果页面进行展示,然后和用户所勾选的进行匹配*/

List cous = new ArrayList();

cous.add("Java");

cous.add(".Net");

cous.add("PHP");

cous.add("C++");

/*把所有课程存在OGNL Context上下文中*/

ActionContext.getContext().put("cous", cous);

return this.SUCCESS;

}

}

修改界面:

您所选择的课程为:

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

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

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

用户已选偶像界面:

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

代码实现!!!

用户已选偶像界面:

您的偶像:

注: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 users;

/* 偶像id字符串 */

private String ids;

public List getUsers() {

return users;

}

public void setUsers(List users) {

this.users = users;

}

public String getIds() {

return ids;

}

public void setIds(String ids) {

this.ids = ids;

}

public String execute() {

/*模拟从数据库中获取所有的偶像,传到前台展示,然后和用户选择的进行对比*/

users = new ArrayList();

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 userIds = new ArrayList();

/*获取用户所勾选的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;

}

}

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

您的偶像为:

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

附:

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

那么,恭喜你,是因为你的struts2标签没有name属性导致!!!!(泪的教训啊,被它坑了两个小时!)

总结

以上就是本文关于Java框架学习Struts2复选框实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:集成测试与接口测试(集成测试与接口测试的区别)
下一篇:eclipse修改jvm参数调优方法(2种)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~