struts+hibernate实现关键字组合查找的功能,查询结果为空,麻烦帮我看下为嘛?
find.jsp代码:<formaction="select"method="post"><tablealign="center"><tr><tdcolspan="5">...
find.jsp代码:
<form action="select" method="post">
<table align="center"><tr><td colspan="5">
请输入查询条件:</td></tr>
<tr><td>标题</td><td><input type="text" name="art.title" ></td>
<td>创建时间</td><td><input type="text" name="art.create_time" ></td>
<td><input type="submit" value="查询 " />
</td></tr></table>
<table><tr><td align="center">标题</td>
<td align="center">正文</td>
<td align="center">责任编辑</td>
<td align="center">创建时间</td>
<s:iterator value="#request.listart" var="t" > <tr>
<td align="center"><s:property value="#t.title"/></td>
<td align="center"><s:property value="#t.text"/></td>
<td align="center"><s:property value="#t.author"/></td>
<td align="center"><s:property value="#t.creat_time"/></td>
</tr>
</s:iterator>
</table>
</form>
</body>
struts.xml关键代码:
<action name="select" class="com.cn.action.ArtAction" method="keyFind">
<result name="success" type="redirect">/main/find.jsp</result>
</action>
省略Art实体类,title\text\author\create_time属性和get\set方法
com.cn.action.ArtAction类关键代码:
private Art art=new Art();
private ArtDaoImpl adi=new ArtDaoImpl();
省略get\set方法
public String keyFind() throws Exception{
List<Art> listArt=adi.keyFind(art.getTitle(), art.getCreate_time());
//System.out.println("action关键字组合查询内容:"+listArt);打印出来的listArt为地址,是这个原因么?要如何改?
request.setAttribute("listart", listArt);
return SUCCESS;
}
ArtDaoImpl 类关键代码:
@Override//关键字组合查询
public List<Art> keyFind(String title,String time) throws Exception {
session.beginTransaction();
//Criteria查询
Criteria criteria=session.createCriteria(Art.class).add(Restrictions.like("title", "%"+title+"%")).add(Restrictions.like("create_time", "%"+time+"%"));
List<Art> returnList=criteria.list();
session.close();
return returnList;
} 展开
<form action="select" method="post">
<table align="center"><tr><td colspan="5">
请输入查询条件:</td></tr>
<tr><td>标题</td><td><input type="text" name="art.title" ></td>
<td>创建时间</td><td><input type="text" name="art.create_time" ></td>
<td><input type="submit" value="查询 " />
</td></tr></table>
<table><tr><td align="center">标题</td>
<td align="center">正文</td>
<td align="center">责任编辑</td>
<td align="center">创建时间</td>
<s:iterator value="#request.listart" var="t" > <tr>
<td align="center"><s:property value="#t.title"/></td>
<td align="center"><s:property value="#t.text"/></td>
<td align="center"><s:property value="#t.author"/></td>
<td align="center"><s:property value="#t.creat_time"/></td>
</tr>
</s:iterator>
</table>
</form>
</body>
struts.xml关键代码:
<action name="select" class="com.cn.action.ArtAction" method="keyFind">
<result name="success" type="redirect">/main/find.jsp</result>
</action>
省略Art实体类,title\text\author\create_time属性和get\set方法
com.cn.action.ArtAction类关键代码:
private Art art=new Art();
private ArtDaoImpl adi=new ArtDaoImpl();
省略get\set方法
public String keyFind() throws Exception{
List<Art> listArt=adi.keyFind(art.getTitle(), art.getCreate_time());
//System.out.println("action关键字组合查询内容:"+listArt);打印出来的listArt为地址,是这个原因么?要如何改?
request.setAttribute("listart", listArt);
return SUCCESS;
}
ArtDaoImpl 类关键代码:
@Override//关键字组合查询
public List<Art> keyFind(String title,String time) throws Exception {
session.beginTransaction();
//Criteria查询
Criteria criteria=session.createCriteria(Art.class).add(Restrictions.like("title", "%"+title+"%")).add(Restrictions.like("create_time", "%"+time+"%"));
List<Art> returnList=criteria.list();
session.close();
return returnList;
} 展开
展开全部
Criteria criteria=session.createCriteria(Art.class).add(Restrictions.like("title", title,MatchMode.ANYWHERE)).add(Restrictions.like("create_time",time,MatchMode.ANYWHERE))
另外,你比较时间为啥使用Like???
关于查询,你可以看一下我个人说明里面的资料,其中的Hibernate查询一章希望对你有用。
另外,你比较时间为啥使用Like???
关于查询,你可以看一下我个人说明里面的资料,其中的Hibernate查询一章希望对你有用。
追问
查询结果还是空白,时间我定义的是当前系统日期,不论我输什么打印的都是当前日期,这也是个问题,先帮我解决查询为空的问题,谢谢谢。自己毫无头绪哇
追答
你要比较时间,使用Restrictions.eq啊。就不要用like啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先systemout一下list的size看看取到了没有。
另外我想提一个问题,你的result type为什么要用redirect呢?
另外我想提一个问题,你的result type为什么要用redirect呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<result name="success" type="redirect">/main/find.jsp</result>
是重定向到main/find.jsp页面,不会传递值,把type="redirect“去掉
是重定向到main/find.jsp页面,不会传递值,把type="redirect“去掉
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询