struts2如何取得数据库中的数据并且传到页面

来源:互联网 发布:会计网络培训学校 编辑:程序博客网 时间:2024/06/05 02:05
标签:strutsJ2EE
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://baiyan425.blog.51cto.com/1573961/799075
方法一:
       我们在Dao类中从数据库中取出数据后,放入VO类(与表对应的或是与界面对应的)中,然后一层一层返回给Action的相应VO类。
 例如:
   Dao类我们是这样编写的:
/**
  * 遍历所有的管理员
  * @return
  */
 public List<Ems_Manager_VO> listManager(){
  
  List<Ems_Manager_VO> list = this.getHibernateTemplate).loadAll ( Ems_Manager_VO.class );//从数据库取得数据放入VO类

    return list;
 }
 
 
  Action类我们是这样编写的:
 
     /*方便页面获取迭代显示*/
 private List<Ems_Manager_VO> managerList ;//管理员
 
/**
  * 列出管理员的信息
  * @return
  */
 public String listManager(){
  System.out.println("=====ManagerAction=listManager==============");
  List<Ems_Manager_VO> list =调用到Dao的listManager方法;//由于正确的三层架构方式应该是通过调用service层的相应方法得到数据的,这里为了方便,我就直接这样写通过调用Dao类得到数据,而省去了service层。
  this.setManagerList( list );//将得到的数据放到Action中的VO类,方便于界面提取
  
  return "listManager";//返回显示界面
 }
 
        界面我们这样编写的:
              //在界面我们是通过S标签的迭代器取Action类中的VO类的数据的
           <s:iterator   value="managerList ">//managerList就是Action类中VO对象的集合
                 <s:property value="idnum"> //这里指集合中的每一个VO对象的属性
            .....................
          </s:iterator>
          
方法二:
       Dao类写法与方法一没什么变化:
  /**
  * 取出这个需要修改的管理员的信息
  *这里我们返回的是一个单VO类对象,不再是一个VO对象集合
  * @return
  */
 public Ems_Manager_VO getModifyManagerInfo( String idnum  ){
  HibernateTemplate hibernate = this.getHibernateTemplate();
  Ems_Manager_VO vo = new Ems_Manager_VO();
  vo.setIdnum(idnum);
  List list =  this.getSession().createQuery("from Ems_Manager_VO where idnum='"+idnum +"'").list();
  return (Ems_Manager_VO) list.get(0);
 }
    Action写法出现了变化:
   在这里我们不再手动实例化一个对象去存取从Dao层返回来的数据,而是
把它直接放入request中。
    Ems_Manager_VO vo =调用Dao层的getModifyManagerInfo方法;
  
  request.setAttribute("managerVO", vo);
 
    界面的写法随着Action写法自然也出现了变化:
    //界面直接通过S标签的property加ognl表达式输出VO对象中的值
            <s:property value='#request.managerVO.idnum'/>//直接用vo对象加属性输出
 
 
小知识:
  如果在request或session中直接加入了String类型的数据。可用<s:property value='#request或session.参数名'/>在页面直接输出
  
 
 

本文出自 “Enthusiasm 10Y/Band Four” 博客,请务必保留此出处http://baiyan425.blog.51cto.com/1573961/799075

原创粉丝点击