关于使用SSH <s:property/>获取数据,对象属性取不到问题
我的问题代码:
<!-- 遍历开始 -->
<s:iterator value="#session.articles_list" var="art">
<h2 class="blog-post-title"><s:property value="#art.theme"/></h2>
<p class="blog-post-meta">
<s:date name="#art.datetime" format="yyyy年MM月dd日 HH时MM分SS秒 "/>
by <s:property value="#art.user.name"/> 发表
</p>
<p><s:property value="#art.content"/>
</p>
<hr>
</s:iterator>
<!-- 遍历结束 -->
我想取得用户名,但是却显示为空,而其他的内容可以显示。这是用SSH框架写的,原来我只用struts2和hibernate4.1的时候<s:property value="#art.user.name"/>可以显示名字,不知道是什么原因?我的articles_list 是经过函数传递了两次,再传给session.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
原因找到了一点:是因为在没有用到的时候,user的name在取article的时候没有去取,而在我增加了一条语句:
public List queryArticle(User user) {
// TODO Auto-generated method stub
List list= sessionFactory.getCurrentSession()
.createCriteria(Article.class)
.setMaxResults(30)
.add(Restrictions.eq("user",user))
.addOrder(Order.desc("datetime"))
.list();
System.out.println("queryArticle"+((Article)list.get(0)).getUser().getName());
return list;
}
后被用到的user,的name都能显示,而其他的user.name 还是无法显示。
那么,该怎么主动级联去取呢?
还是没人知道原因吗。。。
一直忘了写解决办法了:@ManyToOne(fetch = FetchType.
EAGER)