function reserveQuery(){
$.ajax({
type: "post",
url: "rsvqueryAjax.action",
data: "startdate="+$("#startdate").val()+"&enddate="+$("#enddate").val(),
success: function(json){
alert(1)
}
})
}
rsvqueryAjax.action里面调用下面的方法:
public static List<RoomType> getAvailableRoomTypes(String startDateStr,String endDateStr){
System.out.println("进入方法");
Session session = HibernateSessionFactory.getSession();
System.out.println("create session");
String hql1 = "select room.roomtype from Reservation where indate > :enddate or outdate < :startdate";
java.sql.Date startdate = java.sql.Date.valueOf(startDateStr);
java.sql.Date enddate = java.sql.Date.valueOf(endDateStr);
System.out.println("date success");
//list1表示状态为“已预订”的房间中在指定日期范围还可预订的房型
Query query = session.createQuery(hql1);
System.out.println("create query");
query.setDate("startdate", startdate);
query.setDate("enddate", enddate);
System.out.println("set date");
List<RoomType> list1 = query.list();
System.out.println("list get");
list1 = MyUtils.removeDuplicate(list1);
……
就是执行到createquery那一行下面不执行了,控制台也没错误,用firebug发现NetworkError: 500 Internal Server Error - http://localhost/rujiahotel/rsvqueryAjax.action"
hql应该是没错的,我在普通的test类里面测试这个方法是好使的。
------解决方案--------------------
需要更多的错误信息,或者看看哪行出错
------解决方案--------------------
jar 冲突了。网上
当在几种框架集成的时候,在调用HibernateDaoSupport中的某个方法时会出现:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 的错误。这是因为在struts2自带的antlr-2.7.2.jar包的版本较低。
需要换成antlr-2.7.6.jar。其实在项目中已经存在了antlr-2.7.6.jar这个包,现在唯一需要做的就是删除antlr-2.7.2.jar包。
选择windows---preferences---在文本框中搜索struts 2(中间有空格)---选择struts 2---选择antlr-2.7.2.jar---Remove---OK
------解决方案--------------------
如果工程里你确认就剩一个antlr了,那么再确认一下真正的部署目录里是否还有2个jar包,部署也可能出问题的。