关于使用SSH <s:property/>获取数据,对象属性取不到问题

发布于 2021-11-29 14:52:08 字数 752 浏览 669 评论 3

我的问题代码:

<!-- 遍历开始 -->
<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

柒夜笙歌凉 2021-11-30 03:51:52

原因找到了一点:是因为在没有用到的时候,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 还是无法显示。

那么,该怎么主动级联去取呢?

女中豪杰 2021-11-29 22:50:28

还是没人知道原因吗。。。

勿忘初心 2021-11-29 21:27:55

一直忘了写解决办法了:@ManyToOne(fetch = FetchType.
EAGER)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文