1、 先定义action formbean:
package com.bhsky.webis.system;
import org.apache.struts.action.*;
import javax.servlet.http.*;
public class usersactionform extends actionform {
private string usr_id;
private string usr_name;
public void setusr_id(string usr_id) {
this.usr_id = usr_id;
}
public string getusr_id() {
return usr_id;
}
public string getusr_memo() {
return usr_memo;
}
public void setusr_name(string usr_name) {
this.usr_name = usr_name;
}
}
|
2、 编写通用的为actionformbean赋值的方法:
//function: 完成resultset对象向arraylist对象为集合的对象的转化
//para:sql,指定的查询sql
//para:classname,sql相对应得javabean/formbean类的名字
//return:以类classname为一条记录的结果集,
//完成resultset对象向arraylist对象为集合的classname对象的转化
public arraylist select(string sql,string classname){
arraylist paralist=new arraylist();
try{
if (conn == null){
connection();
}
preparedstatement stmt = conn.preparestatement(sql);
resultset rs = stmt.executequery();
string recordvalue="";
object c1=null;
paralist=new arraylist();
resultsetmetadata rsmd = rs.getmetadata();
int columncount = rsmd.getcolumncount();
while (rs.next()){
c1=class.forname(classname).newinstance();
for (int i=1; i<=columncount; i++) {
if(rs.getstring(rsmd.getcolumnname(i))!=null){
recordvalue=rs.getstring(rsmd.getcolumnname(i));
}else{
recordvalue="";
}
method
m=c1.getclass().getmethod(getsetmethodname(rsmd.getcolumnname(i)),
new class[]{recordvalue.getclass()});
m.invoke (c1, new object[]{recordvalue});
}
paralist.add(c1);
}
}catch(sqlexception ex){
}catch(classnotfoundexception e){
}catch(nosuchmethodexception e) {
}catch(invocationtargetexception e){
}catch (illegalaccessexception e){
}catch(instantiationexception e){
} finaly{
closeconnection();
return paralist;
}
}
|
3、 在javabean封装的商业逻辑中调用select 方法,然后在jsp页面上显示出来:
//function:取得用户列表
//para:
//return:返回用户列表
public arraylist getusers(){
arraylist ret=null;
databasemanage db=new databasemanage();
string sql=" select usr_id,usr_name "
+" from users " ;
ret=db.select(sql," com.bhsky. webis.system.usersactionform");
return ret;
}
|
4、 在action的execute方法中调用getusers()方法:
public actionforward execute(actionmapping actionmapping,
actionform actionform, httpservletrequest request,
httpservletresponse httpservletresponse)
{
/**@todo: complete the business logic here, this is just a skeleton.*/
usersactionform uaf=(usersactionform)actionform;
systemservice ubb=new systemservice();
arraylist userlist=ubb.getusers();
request.setattribute("userlist",userlist);
actionforward actionforward=actionmapping.findforward(url);
return actionforward;
}
|
5、 在jsp中显示:
<table width="700" class="1" border="1" cellspacing="1" align="center">
<tr>
<td class="list" >用户id</td>
<td class="list" >姓  名</td>
</tr>
<logic:present name="userlist" scope="request">
<logic:iterate name="userlist" id="userlist"
type="com.bhsky.webis.system.usersactionform">
<tr>
<td class="cell1" height="22"><bean:write name="userlist"
property="usr_id"/></td>
<td class="cell1" height="22"><bean:write name="userlist"
property="usr_name"/></td>
</tr>
</logic:iterate>
</logic:present>
</table>
|