hibernate 查询问题

tubage408 2007-10-29 01:52:36
action
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;

import com.myself.hibernate.vo.ReaderAndBook;
import com.myself.hibernateFactory.HibernateSessionFactory;

public class Query extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String sql = "select readerandbook " +
"from Reader reader,ReaderAndBook readerandbook where reader.readerid = readerandbook.TReader.readerid";
Session session = HibernateSessionFactory.getSession();
org.hibernate.Query q = (org.hibernate.Query)session.createQuery(sql);
List list = q.list();
request.setAttribute("readerAndBooks",list);
return mapping.findForward("success");
}
}

jsp页面
<%@ page language="java" import="java.util.*,com.myself.hibernate.vo.*"
pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic"
prefix="logic"%>
<html>
<head>
</head>

<body>
<form action="${pageScope.path}query.do" method="post">
<input type="submit" value="submit" />
<logic:present name="${requestScope.readerAndBooks}">
<table>
<tr>
<td>
readerandbookid
</td>
<td>
readerid
</td>
</tr>
<logic:iterate id="readerandbook" name="${requestScope.readerAndBooks}">
<tr>
<td>
${readerandbook.readerandbookid}
</td>
<td>
${readerandbook.TReader.readerid}
</td>
</tr>
</logic:iterate>
</table>
</logic:present>
</form>
</body>
</html>
请问我的页面上为什么总没有输出呀???(标签都已经配置好了)
...全文
93 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tubage408 2007-10-29
  • 打赏
  • 举报
回复
struts标签不支持el??
xtfmtjf 2007-10-29
  • 打赏
  • 举报
回复
呵呵,${requestScope.readerAndBooks}这个是JSTL标签里面的,你用的是struts标签啊
tubage408 2007-10-29
  • 打赏
  • 举报
回复
我以前都是这么写的呀
tubage408 2007-10-29
  • 打赏
  • 举报
回复
<form action="${pageScope.path}query.do" method="post">
<input type="submit" value="submit" />
<logic:present name="readerAndBooks">
<table>
<tr>
<td>
readerandbookid
</td>
<td>
readerid
</td>
</tr>
<logic:iterate id="readerandbook" name="readerAndBooks">
<tr>
<td>
${readerandbook.readerandbookid}
</td>
<td>
${readerandbook.TReader.readerid}
</td>
</tr>
</logic:iterate>
</table>
</logic:present>
<table border="1">
<tr>
<td width="50" height="10">
<marquee direction="up" scrollamount="6">
<a href="#">123</a>
<br>
<a href="#">321</a>
<br>
<a href="#">132</a>
<br>
<a href="#">213</a>
<br>
<a href="#">312</a>
<br>
</marquee>
</td>
</tr>
</table>
</form>

在页面上为什么改成红色部分的那样就可以呀,我原来
<form action="${pageScope.path}query.do" method="post" >
<input type="submit" value="submit" / >
<logic:present name="${requestScope.readerAndBooks}" >
<table >
<tr >
<td >
readerandbookid
</td >
<td >
readerid
</td >
</tr >
<logic:iterate id="readerandbook" name="${requestScope.readerAndBooks}" >
<tr >
<td >
${readerandbook.readerandbookid}
</td >
<td >
${readerandbook.TReader.readerid}
</td >
</tr >
</logic:iterate >
</table >
</logic:present >
</form >
蓝色的部分,这样写为什么不可以呀?
tubage408 2007-10-29
  • 打赏
  • 举报
回复
搞出来了
tubage408 2007-10-29
  • 打赏
  • 举报
回复
而且我在页面上用request.getAttribute("readerAndBooks");也能得到而且能打印出来,就是用标签的时候什么都不显示呀,不知道怎么搞的
tubage408 2007-10-29
  • 打赏
  • 举报
回复
那查的不是一个字段是个别名呀。上面的那个for循环能得到我想得到的东西呀,现在我就是想把list传到页面上,可就是没有显示,iterate照我那么用也没有错误呀??还请指点!!!1
tubage408 2007-10-29
  • 打赏
  • 举报
回复
那查的不是一个字段是个别名呀。上面的那个for循环能得到我想得到的东西呀,现在我就是想把list传到页面上,可就是没有显示,iterate照我那么用也没有错误呀??还请指点!!!1
xtfmtjf 2007-10-29
  • 打赏
  • 举报
回复
我是这么用logic:iterate标签的
<logic:iterate id="aqtj" name="aqtjlist">
<td align="center"><bean:write name="aqtj" property="yonghubianhao"/></font></td>
</logic:iterate>
但是我仍然觉得你只查询一个字段,怎么可能会得到整个对象?
能不能说说System.out.println(o instanceof ReaderAndBook);
System.out.println(((ReaderAndBook)o).getTReader().getReaderid());
这里面o instanceof ReaderAndBook和((ReaderAndBook)o).getTReader().getReaderid()是什么意思?
tubage408 2007-10-29
  • 打赏
  • 举报
回复
for(int i=0;i<list.size();i++){
Object o = (Object) list.get(i);
System.out.println(o.getClass());
System.out.println(o instanceof ReaderAndBook);
System.out.println(((ReaderAndBook)o).getTReader().getReaderid());
我在action里加上了上面的代码,能得到我要得到的呀。而且在页面上照我那么写的话
<logic:present name="${requestScope.readerAndBooks}" >
<table >
<tr >
<td >
readerandbookid
</td >
<td >
readerid
</td >
</tr >
<logic:iterate id="readerandbook" name="${requestScope.readerAndBooks}" >
<tr >
<td >
${readerandbook.readerandbookid}
</td >
<td >
${readerandbook.TReader.readerid}
</td >
</tr >
</logic:iterate >
</table >
</logic:present >
怎么没有显示呀?????<logic:present name="${requestScope.readerAndBooks}" >
应该能得到吧????加红的部分这么写有错吗???
xtfmtjf 2007-10-29
  • 打赏
  • 举报
回复
select readerandbook " +
"from Reader reader,ReaderAndBook readerandbook where reader.readerid = readerandbook.TReader.readerid"
SQL写错了,你只查readerandbook 这一个字段,${readerandbook.readerandbookid}
</td >
<td >
${readerandbook.TReader.readerid} 怎么可能会有值输出?
hibernate里面查询表中所有的字段这样写:
from Reader reader,ReaderAndBook readerandbook where reader.readerid = readerandbook.TReader.readerid
某几个字段才是你上面那样写
tubage408 2007-10-29
  • 打赏
  • 举报
回复
怎么没人回呀》???、

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧