我是Spring的新手,我希望使用Hibernate和Criteria在我的.jsp中的两个日期之间搜索和显示记录,但它不起作用。
它返回此错误:
HTTP状态400 - 类型状态报告消息描述请求 客户发送的语法不正确。 Apache Tomcat / 7.0.73
你能帮我吗?
这是我的代码:
CancelacionDAO.java
import java.util.Date;
import java.util.List;
import cl.helloworld.pojo.Cancelacion;
public interface CancelacionDAO {
public List<TCancelacionNX> findByFecha(Date fecha_anterior, Date fecha_siguiente);
}
CancelacionDAOImpl.java
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import cl.helloworld.pojo.Cancelacion;
@Transactional
@Repository
public class CancelacionDAOImpl implements CancelacionDAO {
@Autowired
private SessionFactory sessionFactory;
public Session getSession(){
return sessionFactory.getCurrentSession();
}
@SuppressWarnings("unchecked")
public List<TCancelacionNX> findByFecha(Date dateFrom, Date dateTo) {
Criteria crit = getSession().createCriteria(Cancelacion.class);
crit.add(Restrictions.between("FECHA", fecha_anterior, fecha_siguiente));
return crit.list();
}
<br>
}
Controller.java
@RequestMapping(value="/cuadratura/search")
public String handleCuadratura(@ModelAttribute("cancelacion") Cancelacion cancelacionForm,
Model model, RedirectAttributes ra, @RequestParam("dateFrom") Date dateFrom, @RequestParam("dateTo") Date dateTo){
List<Cancelacion> cancelaciones = cancelacionService.findByFecha(dateFrom, dateTo);
Cancelacion cancelacion = new Cancelacion();
model.addAttribute("cancelacion", cancelacion);
model.addAttribute("cancelaciones", cancelaciones);
return "redirect:/cuadratura";
}
view.jsp的
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="webjars/bootstrap/3.3.7/css/bootstrap.css" />
</head>
<body>
<c:url value="/resources/images" var="images" />
<img src="${images}/logo.png"/>
<sf:form class="form-inline" action="${pageContext.request.contextPath}/cuadratura/search" method="post" commandName="tcancelacionnx">
<div class="form-group">
<label>From:</label>
<input name="dateFrom" type="text"/>
</div>
<div class="form-group">
<label>To:</label>
<input name="dateTo" type="text"/>
</div>
<input type="submit" class="btn btn-primary" value="Generar Cuadratura">
</sf:form>
<br/>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>Seq Fichero</th>
<th>Num Operacion</th>
<th>Código Contrato</th>
<th>Fecha</th>
</tr>
</thead>
<tbody>
<c:forEach items="${cancelaciones}" var="cancelacion">
<tr>
<td><c:out value="${cancelacion.seq_fichero_cierre}"/></td>
<td><c:out value="${cancelacion.num_operacion}"/></td>
<td><c:out value="${cancelacion.codigo_contrato}"/></td>
<td><c:out value="${cancelacion.fecha}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<div class="page-header">
</div>
<div id="footer">
<div class="container">
<p class="text-muted credit"></p>
</div>
</div>
<script src="webjars/jquery/3.1.1/jquery.min.js"></script>
<script src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>