随着网络应用日益普及,Web应用程序的开发也越来越流行。在java Web应用程序开发中,Struts2框架被广泛使用。其中,下拉列表是常见的用户输入控件,常常用来选择一项或多项数据。在Struts2中,操作下拉列表选择的数据通常都与操作数据库数据有关。本文将介绍Struts2下拉列表的使用方法,同时提供一个简单的实例演示如何操作数据库中的数据。
一、Struts2下拉列表的使用方法
1.定义下拉列表
在Struts2中,可以使用HTML标签或Struts2标签库定义下拉列表。下面是HTML标签的定义:
其中,Name属性指定下拉列表的名称,option标签定义每个选项的内容和对应的值(value属性)。
运用Struts2标签库定义下拉列表更加简单。只需在P页面中使用相应的标签,即可生成下拉列表。下面是使用Struts2标签库定义下拉列表的示例代码:
2.处理下拉列表
在Struts2中,可以使用Action类的属性、Ognl表达式等方式获取下拉列表选择的数据。下面是使用Action类的属性获取下拉列表选择的数据的示例代码:
在Action类中定义mySelect属性:
private String mySelect;
public String getMySelect() {
return mySelect;
public void setMySelect(String mySelect) {
this.mySelect = mySelect;
在P页面中使用下拉列表:
在操作Action中,可以通过以下方式获取用户选择的数据:
public String myAction() {
System.out.println(“mySelect=” + mySelect);
return SUCCESS;
通过以上步骤,即可获取下拉列表中选择的数据。
二、的示例代码
下面提供一个简单的示例,演示如何使用Struts2下拉列表操作数据库中的数据。
(1)创建数据库表
创建一个名为“person”的数据库表,包含id、name和age三个字段:
CREATE TABLE person(
id INTEGER PRIMARY KEY AUTOINCREMENT,
age INTEGER
(2)进行Struts2配置
在struts.xml文件中,首先配置命名空间和默认Action,如下所示:
/index.jsp
/index.jsp
在com.example.PersonAction类中,定义查询数据库的方法:
public class PersonAction extends ActionSupport {
private List list;
public List getList() {
return list;
public void setList(List list) {
this.list = list;
public String query() throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/test”;
String username = “root”;
String password = “123456”;
conn = DriverManager.getConnection(url, username, password);
String sql = “select * from person order by id”;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
list = new ArrayList();
while(rs.next()) {
Person person = new Person();
person.setId(rs.getInt(“id”));
person.setName(rs.getString(“name”));
person.setAge(rs.getInt(“age”));
list.add(person);
} catch(Exception e) {
e.printStackTrace();
return ERROR;
if(rs != null) rs.close();
if(ps != null) ps.close();
if(conn != null) conn.close();
return SUCCESS;
(3)定义P页面
在index.jsp页面中,使用Struts2下拉列表,如下所示:
Struts2下拉列表操作数据库数据
(4)实现查询功能
在PersonAction类中,再添加一个查询指定id的方法:
public class PersonAction extends ActionSupport {
private List list;
public List getList() {
return list;
public void setList(List list) {
this.list = list;
private Person person;
public Person getPerson() {
return person;
public void setPerson(Person person) {
this.person = person;
private int personId;
public int getPersonId() {
return personId;
public void setPersonId(int personId) {
this.personId = personId;
public String query() throws Exception {
//查询数据库并将结果保存到list中
public String getById() throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/test”;
String username = “root”;
String password = “123456”;
conn = DriverManager.getConnection(url, username, password);
String sql = “select * from person where id=?”;
ps = conn.prepareStatement(sql);
ps.setInt(1, personId);
rs = ps.executeQuery();
while(rs.next()) {
person = new Person();
person.setId(rs.getInt(“id”));
person.setName(rs.getString(“name”));
person.setAge(rs.getInt(“age”));
} catch(Exception e) {
e.printStackTrace();
return ERROR;
if(rs != null) rs.close();
if(ps != null) ps.close();
if(conn != null) conn.close();
return SUCCESS;
在index.jsp中,添加新的表单和提交按钮,调用getById方法:
Struts2下拉列表操作数据库数据
个人信息:
姓名: |
年龄: |
至此,我们已经完成了Struts2下拉列表操作数据库数据的示例。
三、
相关问题拓展阅读:
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云
服务器
和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
为什么我在oracle参数文件中设置standby
一 创建一个主库的数据文件备份:用冷备份方式,备份到e:\shared\back二 创建备用库的控制文件:冷备份之后,打开主库SQL> connect internal/oracle as sysdba;SQL>startup pfile=d:\oracle\admin\orcl\;SQL>alter database create standby controlfile as ‘e:\shared\back\stby_’;三 通过网络复制备份的数据文件和备用控制文件到备库主机四 配置主库的文件,添加备库别名为stby1,即下面内容:stby1=(description=(address=(protocol=tcp)(port=1523)(host=192.168.1.30))(connect_data=(SID=orcl)))五 配置备用库的文件,添加监听服务standby_listener,在相应的节里添加有关的内容。 如果原文件内已有,则修改之。 standby_listener节:(address_list=(address=(protocol=tcp)(port=1523)(host=192.168.1.30) ) )SID_list_standby_listener节:(sid_list=(sid_desc=(sid_name=orcl)(oracle_home=d:\oracle\ora81)) )这个文件中只能有这两节,不能有多个组,虽然可以定义监听的名字不同,但在启动监听服务的时候,都只启动一个监听服务。 六 重新启动备库监听服务,以使更改生效:DOS>lsnrctl# 启动监听服务管理程序LSNRCTL>status# 查看监听服务状态LSNRCTL>stop# 停止监听服务LSNRCTL>start# 启动监听服务也可以在管理工具的服务管理里停止和启动服务。 七 配置主库的初始化参数文件,修改归档目的地。 本地归档只归档到一个目录e:\log。 添加以下内容:# 定义本地归档路径,强制归档,重试时间2秒log_archive_dest_1 = “location=e:\log\ mandatory reopen=2”log_archive_dest_state_1 = enable# 定义归档到备用库,强制归档,重试时间15秒。 # 如果定义为可选状态(optional),那么在归档失败后不会再次尝试归档的。 定义# 为madatory状态后,如果本次归档失败,则在归档下一个日志时会再次尝试# 重传上一个未成功归档的日志。 log_archive_dest_2 = “service=stby1 mandatory reopen=15”log_archive_dest_2 = enable# 定义必须成功归档的日志数,只需要本地成功归档即可log_archive_min_succeed_dest = 1八 使主库修改后的参数生效。 以下操作是在未重启主库时使用。 如果修改主库初始化参数文件后重新启动了主库,则可以不使用下列命令。 下列命令只对当前实例有效。 SQL>alter system set log_archive_dest_1 = “location=e:\log mandatory reopen=2”;SQL>alter system set log_archive_dest_state_1 = enabl;SQL>alter system set log_archive_dest_2 = “service=stby1 mandatory reopen=30”;SQL>alter system set log_archive_dest_2 = enable;SQL>alter system set log_archive_min_succeed_dest = 1;九 配置备用库的初始化参数文件:将主库的初始化参数文件复制到备库,删除原有的日志归档目录项,并添加以下内容:log_archive_dest = e:\loglog_archive_trace = 6#定义日志跟踪层次standby_archive_dest = e:\log# 更改控制文件名control_Files = (“d:\oracle\oradata\orcl\stby_”)十 启动备用库将从主库复制过来的数据文件、控制文件复制到相应的位置,然后在备库上操作(此时备库处于关闭状态):SQL>connect internal/oracle as sysdbaSQL>startup nomountSQL>alter database mount standby database十一如果有日志序列的缺失,则先将主库的日志复制到备库日志目录,进行手工恢复SQL>recover automatic standby database;或者:SQL>recover standby database until cancel;查看日志序列是否有缺失的SQL语句:SQL>SELECT #, LowGap#, HighGap#FROM(SELECT thread#, MIN(sequence#)-1 HighGap#FROM(SELECT #, #FROMv$archived_log a,(SELECT thread#, MAX(next_change#) gap1FROM v$log_historyGROUP BY thread#) bWHERE # = #AND _change# > 1)GROUP BY thread#) high,(SELECT thread#, MIN(sequence#) LowGap#FROM(SELECT thread#, sequence#FROM v$log_history, v$datafileWHERE checkpoint_change# <= next_change#AND checkpoint_change# >= first_change#)GROUP BY thread#) lowWHERE # = # ;如果备库有日志序列缺失,则同一个thread#的LowGap# 与 HighGap# 不等。 如果没有日志序列缺失,那么选出空值或者是LowGap# 与 HighGap# 相同。 十二 将备库置于自管理模式SQL>recover managed standby database;此时,SQLPLUS窗口停止响应,直到取消备库自管理模式。 要取消备库的自管理模式的命令:SQL>recover managed standby database cancel;翻译摘抄自oracle 816随机文档,加上以自己的一些测试。
sql语句如何重命名表名和列名?
A. 重命名表 下例将表 customers 重命名为 custs。 EXEC sp_rename customers, custs B. 重命名列 下例将表 customers 中的列 contact title 重命名为 title。 EXEC sp_rename customers.[contact title], title, COLUMN
sql常用语句写法
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE masterEXEC sp_addumpdevice ’disk’, ’testBack’, ’c:MSSQL7backupMyNwind_’
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tabname
6、说明:

增加一个列:Alter table tabname add column col type
注:列增加后将不能删除。 DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname add primary key(col)
说明:
删除主键:Alter table tabname drop primary key(col)
8、说明:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
发表评论