原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://baiyan425.blog.51cto.com/1573961/799075
方法一:
我们在Dao类中从数据库中取出数据后,放入VO类(与表对应的或是与界面对应的)中,然后一层一层返回给Action的相应VO类。
例如:
Dao类我们是这样编写的:
/**
* 遍历所有的管理员
* @return
*/
public List<Ems_Manager_VO> listManager(){
* 遍历所有的管理员
* @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 ;//管理员
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";//返回显示界面
}
* 列出管理员的信息
* @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写法出现了变化:
* @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);
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