首页 »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、 在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; 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" >姓  名</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>
相关文章
读者评论
发表评论
|
|