List list=queryObject.list()的用法

olylai 2010-03-31 09:22:39
String queryString="select CON_UNIT as con_unit,sum(DFMONEY) as money from Finacel AS M where M.TOPOSNO=:posno and M.BILLDATE>=:begindate and M.BILLDATE<=:enddate and M.CANCEL=0 and M.PAYID=0 group by M.CON_UNIT";
Session s1=HibernateSessionFactory.getSession();
Transaction t1=s1.beginTransaction();
Query queryObject=s1.createSQLQuery(queryString);
queryObject.setParameter("posno",posno);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
queryObject.setParameter("begindate",sdf.format(begindate));
queryObject.setParameter("enddate",sdf.format(enddate));
List<Object[]> list=queryObject.list();
for(Object[] objs : list ){
System.out.print("查询数据1"+objs[0]);
System.out.print(",");
System.out.print("查询数据2"+objs[1]);
}

请问怎么用request.setAttribute("posts",list)的方法,让查询出来的数据在jsp页面上面以以下方式显示呢?
<c:forEach var="posts" items="${posts}" varStatus="status">
${posts}
</c:forEach>
...全文
875 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuhesheng 2010-03-31
  • 打赏
  • 举报
回复
你想想${posts.money}得到的是什么
是否对money和posts都有getset方法
posts是一个列表
而不是一个类的什么对象
当然不能".money"了
既然使用标签就都使用标签
不要既有EL又有标签的
这样会混乱的
你去参考下我说的标签
你可以google下那些标签的使用
而且MyEclipse又智能提示的
自己多动动手!1!!!!!!!
无语
olylai 2010-03-31
  • 打赏
  • 举报
回复
up--------------------------------
olylai 2010-03-31
  • 打赏
  • 举报
回复
List<Object[]> list=queryObject.list();
ArrayList mylist=new ArrayList();
for(Object[] objs : list ){
System.out.print("查询数据1"+objs[0]);
System.out.print(",");
System.out.print("查询数据2"+objs[1]);
LazyDynaBean bean = null;
bean=new LazyDynaBean();
bean.set("con_unit",objs[0]);
bean.set("money",objs[1]);
mylist.add(bean);
}

request.setAttribute("posts",mylist);


<c:forEach var="posts" items="${posts}" varStatus="status">
${posts.money}----------------为什么还是提示出错呢??</c:forEach>
xuhesheng 2010-03-31
  • 打赏
  • 举报
回复
新手
不要把这些空指针之类的错误拿出来问
只会耽误你自己的事情

多学会review和checkout
BearKin 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bearkin 的回复:]
List mylist=null;

你这个初始化了么
[/Quote]
又说错了...你给new一下啊
olylai 2010-03-31
  • 打赏
  • 举报
回复
xuhesheng 2010-03-31
  • 打赏
  • 举报
回复
List mylist=null;你说会不会报空指针呢
还有你不要在循环外部定义你的LazyDynaBean
否则你list添加的都是最后一个
你只分配了同一个内存空间
添加的时候当然只能添加的全是最后一个啦
在循环里就要循环生成才行

你怎么搞的嘛
BearKin 2010-03-31
  • 打赏
  • 举报
回复
List mylist=null;

你这个初始化了么
BearKin 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 olylai 的回复:]
List<Object[]> list=queryObject.list();
LazyDynaBean bean = null;
List mylist=null;
for(Object[] objs : list ){
System.out.print("查询数据1"+objs[0]);
System.out.print(",");
System.out.print("查询数据2"……
[/Quote]

空指针 你使用了空对象 看清楚俺说的话
olylai 2010-03-31
  • 打赏
  • 举报
回复
List<Object[]> list=queryObject.list();
LazyDynaBean bean = null;
List mylist=null;
for(Object[] objs : list ){
System.out.print("查询数据1"+objs[0]);
System.out.print(",");
System.out.print("查询数据2"+objs[1]);
bean=new LazyDynaBean();
bean.set("con_unit",objs[0]);
bean.set("money",objs[1]);
mylist.add(bean);java.lang.NullPointerException--------为什么还是提示这个}

BearKin 2010-03-31
  • 打赏
  • 举报
回复
c:forEach循环数组
这里有个人写的方式是 两个c:forEach 外面获得数组 里面循环输出数组 大概就是这么实现的吧

至于什么空指针 检查下你的对象是否为空 scope是否正确 等等等等
xuhesheng 2010-03-31
  • 打赏
  • 举报
回复
空指针的问题自己解决!!!!
xuhesheng 2010-03-31
  • 打赏
  • 举报
回复
我对C标签不是很熟悉
对于S标签还是比较了解的
因为C中的那个if实在是让人恼火
给你举个S标签下的例子让你看下吧
<s:iterator id="operatorlist" value="#request.operatorlist" >
<s:property id="operatorlist" value="customName"/>
</s:iterator>
以上为了简单
只输出一个内容
但是要注意,其中的value是从request中取得的数据,需要用SetAttribute的方式传递参数
id是用来循环显示的标示
在<s:property>中的id就是跟上面的id对应的 <s:property>中的value表示你要显示的属性
我的列表里放的是Custom类(自定义的),其中有customName属性

于是循环显示出来这些东西

C标签也有相对应的东西
你看下吧
我手头没有工具可用
只知道这些了

祝你成功啊
olylai 2010-03-31
  • 打赏
  • 举报
回复
再顶下
olylai 2010-03-31
  • 打赏
  • 举报
回复
出错了
olylai 2010-03-31
  • 打赏
  • 举报
回复
不行呀,出错了,提示:查询数据1?3·á?ù??,查询数据20.02010-3-31 9:34:53 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at cn.hibernate.dao.hibernate.FinacelDaoHibernate.getFinacelGroupListByPosIsNotPayOfCarryunitYsf(FinacelDaoHibernate.java:104)
at cn.sale.OP.action.CarryAction.tijiao(CarryAction.java:82)
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
cbdhxka 2010-03-31
  • 打赏
  • 举报
回复
如果你实在不知道怎么写就在action中就用lazyDynaBean 封装下
比如
DynaBean bean = null

List list = new ArrayList();
for(Object[] objs : list ){
bean=new lazyDynaBean ()
bean.set("CON_UNIT",objs[0]);
......
list.add(bean)

}
request.setAttribute("posts",list)
<c:forEach var="posts" items="${posts}" varStatus="status">
${posts.CON_UNIT}
</c:forEach>
页面上直接访问

以上打码手打的,自己调下吧
olylai 2010-03-31
  • 打赏
  • 举报
回复
自己顶一下
olylai 2010-03-31
  • 打赏
  • 举报
回复
此查询为一个分类汇总查询.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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