Struts2下拉框实例解析
作者:lavimer 发布时间:2021-09-16 16:29:59
标签:struts,下拉框
其实以前我对Java的Struts框架没有具体认识,通过这篇文章,真的让我了解了框架的用处,好处。
下拉框在Web开发中经常会使用到,下面我们通过struts2的标签来实现下拉框的一些功能。
先来看看<s:select>
的一些参数:
注:listKey相当于HTML中的value值,我们是通过它的值来和后台进行交互的。
案例:用户选择了自己的偶像,然后要对其进行修改,跳转到修改界面之后,要回显用户最初选择的偶像。
用户偶像界面(假设用户当前的选择为" * "):
实现代码!!!!
用户偶像界面:
<form action="selectAction.action" method="post">
您的偶像为:<s:select list="#{1:' * ',2:' * ',3:' * ',4:' * '}" name="id" listKey="key" listValue="value"/>
<input type="submit" value="我要修改">
</form>
</body>
注:list使用OGNL创建的Map集合。
action代码:
public class SelectAction extends ActionSupport {
private static final long serialVersionUID = 1L;
/*用户所选的偶像的id*/
private String id;
/*偶像集合*/
private List<User> users;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
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属性就是用户所选的值,
//作为action的属性,它已经保存到值栈中去了,可以直接根据属性名id来获取
return this.SUCCESS;
}
}
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;
}
}
修改界面:
<body>
您的偶像为:
<s:select list="#users" listKey="uid" listValue="uname" value="id" />
</body>
注:value值只写了一个id(用户所选偶像的id)属性名称,是因为它是action中的属性,action中的属性会被保存到值栈中,所以可以直接获取。
来源:http://blog.csdn.net/lzm1340458776/article/details/29854241


猜你喜欢
- 使用stream判断两个list元素的属性并输出/*** 使用stream判断两个list中元素不同的item*/@Testpublic v
- 第一步,导jar包<!--Email--> <dependency&
- 前言在项目中为了灵活配置,我们常采用配置文件,常见的配置文件就比如xml和properties,springboot允许使用properti
- 本文实例讲述了在Linux上运行C#的方法。分享给大家供大家参考。具体方法如下:在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个
- 刚学完JDBC不久,做了一个简单的学生管理系统,可能还有不完善的地方,望各路大神见谅。废话不多说,我先贴个图让大家让大家瞅瞅,觉得是你想要的
- 一、 看效果二、上代码package com.framework.widget;import android.app.Activity;im
- Collection遍历方式Collection集合遍历的方式有三种:迭代器foreach/增强for循环lambda表达式迭代器遍历迭代器
- 这篇文章主要讲解C#中的泛型,泛型在C#中有很重要的地位,尤其是在搭建项目框架的时候。一、什么是泛型泛型是C#2.0推出的新语法,不是语法糖
- 认识链表结构单向链表单链表在内存中的表示:可以看到,一个链表的节点包含数据域和指向下一个节点的引用,链表最后一个节点指向null(空区域)。
- 最近由于工作要求:前端采用vue开发,后端采用springboot开发,前后端分离开发,最后前端页面又整合到后端来。经历多次采坑,总结以下方
- 一、背景在实际开发中,对于 不需要任何准确计算精度的属性可以直接使用float或double,但是如果需要精确计算结果,则必须使用BigDe
- int a = 5; int b = 30; Console.WriteLine(a^b);&n
- 带着问题 往下看 (namesrv)我们在写组件的时候 怎么管理version如果现在让你 维护一个 各个jar包公用的属性System.e
- 一、 * 概念 * 分为JDK * 和cglib * 两种方式。jdk * 是由Java内部的反射机制来实现的,cglib *
- 前言碎语Disruptor是英国LMAX公司开源的高性能的线程间传递消息的并发框架,和jdk中的BlockingQueue非常类似,但是性能
- < application /> :应用的声明。 这个元素包含了子元素,这些子元素声明了应用的组件,元素的属性将会影响应用下的所
- synchronized锁的升级(偏向锁、轻量级锁及重量级锁)java同步锁前置知识点1.编码中如果使用锁可以使用synchronized关
- 性能优化点:1.使用int不使用double。(单位用分不用元)也省去了还要用math.round四舍五入,把double类型数据只留小数点
- 测试例:PageElement pe = new PageElement();pe.LoadDataFromJsonString("
- 1. 前言随着数据量和调用量的增长,用户对应用的性能要求越来越高。另外,在实际的服务中,还存在着这样的场景:系统在组装数据的时候,对于数据的