写在前面:
这一部分是根据日期时间查询,截至该日0点时的疫情信息;
包括世界各国新增热力图,中国累积热力图,死亡率前十的国家,新增vs治愈对比等
一.vo实体类
Info.java
public class Info {
private Integer iid;
private Date idate;
private String worldmap;
private String chinamap;
private String tiaoxing;
private String zhexian;
private String rosemap;
private String number;
//getter,sertter略
}
Info.hbm.xml:略
applicationContext.xml配置hibernate文件;
二.action,service,dao
1.action
public class InfoAction extends ActionSupport implements ModelDriven<Info> {
// 模型驱动的对象
// 关于模型驱动,参见https://blog.csdn.net/qq_33800083/article/details/80251112
private Info info = new Info();
public Info getModel() {
return info;
}
//调用service
private InfoService infoService;
public void setInfoService(InfoService infoService) {
this.infoService = infoService;
}
//函数:通过日期搜查疫情信息
public String findByDate() {
System.out.println(info.getIdate());
List<Info> iList = infoService.findByDate(info.getIdate());
ActionContext.getContext().getSession().put("iList", iList);
//System.out.println(iList.get(0).getWorldmap());
return "success";
}
}
2.service
public class InfoService {
private InfoDao infoDao;
public void setInfoDao(InfoDao infoDao) {
this.infoDao = infoDao;
}
public List<Info> findByDate(Date date) {
// TODO Auto-generated method stub
return infoDao.findByDate(date);
}
}
3.dao
public class InfoDao extends HibernateDaoSupport{
public List<Info> findByDate(Date date) {
Date date1 = date;
long oneDayTime = 1000*3600*24;
// 这个date2就是减1天的时间
Date date2 = new Date(date1.getTime() - oneDayTime);
SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1str = sdft.format(date1);
String date2str = sdft.format(date2);
System.out.println(date1str);
System.out.println(date2str);
Date from=null;
Date to=null;
try {
from = sdft.parse(date2str);
to = sdft.parse(date1str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DetachedCriteria criteria = DetachedCriteria.forClass(Info.class);
criteria.add(
// 与条件
Restrictions.and(
// 取大于
Restrictions.gt("idate", from),
// 取小于等于less than or equal
Restrictions.le("idate",to)
));
List<Info> list = this.getHibernateTemplate().findByCriteria(
criteria);
return list;
}
}
4.applicationContext.xml配置一下
三.编写调用方法
1.页面请求info_findByDate.action
<form class="demo_form"
action="${pageContext.request.contextPath }/info_findByDate.action"
method="post">
<p>
<input type="text" class="demo-input" placeholder="请选择日期" id="idate"
name="idate">
</p>
<input type="submit" value="查询" class="demo-input2"/>
</form>
2.struts.xml
<action name="info_findByDate" class="infoAction" method="findByDate">
<result name="success">/jsp/page1.jsp</result>
</action>
3. 调用函数:findByDate()
四.接收返回值并显示
<!--jsp页面的顶部添加一条语句-->
<%@ taglib uri="/struts-tags" prefix="s" %>
<div class="image">
<s:iterator var="i" value="#session.iList">
<iframe
src="http://182.92.208.245:8080/covid2019library/<s:property value="#i.worldmap"/>"
width="100%" height="100%" frameborder="0" name="date"></iframe>
</s:iterator>
</div>