SSH框架下进行多条件复合查询并且输出到前台JSP页面的模块

    最近在学校做的一个项目是飞机 订票系统的,其中的一个模块是输入航班目的地以及起飞时间,然后传输到后台,经过复合查询让后将相应的航班信息输出到JSP页面。

    要实现这个模块,首先要获取前台页面输入的航班目的地的值以及起飞时间的值,然后在Action内中进行set()和get()处理。

    接着调用Service类,获取业务逻辑处理对象。

    业务逻辑处理对象调用Dao类进行Hibernate层的复合查询。

    然后返回结果,输出到页面前台。

    这里贴出进行复合查询的关键代码

//按目的地,起飞时间进行查询

 public Flight queryByLocationAndTime(String f_location, String f_time) {

  // TODO Auto-generated method stub

  

  //String hql= "from  Flight as fli where fli.f_location = ? and fli.f_time = ? ";and fli.f_time = ? new String[]{"f_location","f_time"}

   List<Flight> entitise=getHibernateTemplate().find("from  Flight as fli where fli.f_location =?  and fli.f_time = ? ",new String[]{f_location,f_time});

     if (entitise.size() > 0) {   

      Flight entity = entitise.get(0);   

       return entity;     

   }     

   return null;  

 }

记住,返回的是一个po类对象。所以如果要在前台输出整个查询结果,就要获取该对象的第一个值,也就是该记录的id值。 Flight entity = entitise.get(0);  

获取到了po类对象的id值,就可以调用按照id查询方法来返回整个对象的值

//按照目标航班的f_id进行航班查询

 public List queryTargetByID(String f_id) {

  // TODO Auto-generated method stub

  return  getHibernateTemplate().find("from Flight as fli where fli.f_id=?",f_id); 

 }

这里返回的是一个List对象,所以在Action类就可以调用request赋值,然后在jsp页面显示了

//将所有航班信息List存储在request范中

  ServletActionContext.getRequest().setAttribute("tags",tags);

最后在jsp页面只需要使用一个strus标签库的<iterator>迭代器标签输出记录的值了

你可能感兴趣的:(spring,Hibernate,struts2,符合条件查询)