专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » java反射机制:运用类反射机制简化Struts应用程序开发 »正文

java反射机制:运用类反射机制简化Struts应用程序开发

来源: 发布时间:星期四, 2009年1月15日 浏览:34次 评论:0
  1、 先定义Action FormBean:

package com.bhsky.webis.system;
import org.apache.struts.action.*;
import javax.servlet.http.*;
  
public UsersActionForm extends ActionForm {
private String usr_id;
private String usr_name;
public void Usr_id(String usr_id) {
  this.usr_id = usr_id;
}
public String getUsr_id {
   usr_id;
}
public String getUsr_memo {
   usr_memo;
}
public void Usr_name(String usr_name) {
  this.usr_name = usr_name;
}
}


  2、 编写通用为ActionFormBean赋值思路方法:

//Function: 完成ResultSet对象向ArrayList对象为集合对象转化
  //Para:sql,指定查询Sql
  //Para:Name,Sql相对应得JavaBean/FormBean类名字
  //Return:以类Name为条记录结果集
  //完成ResultSet对象向ArrayList对象为集合Name对象转化
 
 public ArrayList Select(String sql,String Name){
  ArrayList paraList= ArrayList;
  try{
    (conn null){
    Connection;
   }
   PreparedStatement stmt = conn.prepareStatement(sql);
   ResultSet rs = stmt.executeQuery;
   String recordValue="";
   Object c1=null;
   paraList= ArrayList;
   ResultSetMetaData rsmd = rs.getMetaData;
    columnCount = rsmd.getColumnCount;
   while (rs.next){
     c1=Class.forName(Name).Instance;
     for ( i=1; i<=columnCount; i) {
      (rs.getString(rsmd.getColumnName(i))!=null){
       recordValue=rs.getString(rsmd.getColumnName(i));
      }{
       recordValue="";
      }
Method
m=c1.getClass.getMethod(getSetMethodName(rsmd.getColumnName(i)),
Class{recordValue.getClass});
      m.invoke (c1, 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;
paraList;
}
 }


  3、 在JavaBean封装商业逻辑中Select 思路方法然后在JSP页面上显示出来:

//Function:取得用户列表
 //Para:
 //Return:返回用户列表
 public ArrayList getUsers{
   ArrayList ret=null;
   DatabaseManage db= DatabaseManage;
   String sql=" select usr_id,usr_name "
     +" from users " ;
   ret=db.Select(sql," com.bhsky. webis.system.UsersActionForm");
    ret;
 }


  4、 在Actionexecute思路方法中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;
  Service ubb= Service;
  ArrayList userList=ubb.getUsers;
  request.Attribute("userList",userList);
  ActionForward actionForward=actionMapping.findForward(url);
   actionForward;
 }


  5、 在JSP中显示:

<table width="700" ="1" border="1" cellspacing="1" align="center">
    <tr>
     <td ="list" >用户ID</td>
     <td ="list" >姓&#160&#160名</td>
    </tr>
    <logic:present name="userList" scope="request">
     <logic:iterate name="userList" id="userList"
type="com.bhsky.webis.system.UsersActionForm">
    <tr>
     <td ="cell1" height="22"><bean:write name="userList"
property="usr_id"/></td>
     <td ="cell1" height="22"><bean:write name="userList"
property="usr_name"/></td>
    </tr>
    </logic:iterate>
   </logic:present>
</table>


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: