如何在Struts迭代器中访问ValueStack对象?

Mon*_*ael 7 java struts2 ognl valuestack

我有以下代码:

<s:iterator value="reviews">

    <img src="<s:property value="#request.restaurant.portalImage.url"  />" />

    <s:property value="user.firstName" />
    <s:property value="user.lastName" />
    <s:property value="rating" />
    <s:property value="review" />

</s:iterator>
Run Code Online (Sandbox Code Playgroud)

评论是一个评论对象列表,其中包含评论的详细信息,例如评级和用户名.

我的问题是我无法访问循环中ValueStack上的任何对象.

循环外部<s:property value="#request.restaurant.portalImage.url" />正常工作.但是在循环中它打印为null.

AFAIK和迭代器在ValueStack上推送它的集合,以便所有OGNL表达式都能解决它.但我使用了#,这意味着我明确指定了解析的根对象.

为什么它仍然不起作用?

Pha*_*ani 1

你应该像下面这样改变它:

 <s:iterator value="reviews" var="varrequest">

   <img src="<s:property value="#varrequest.restaurant.portalImage.url"  />" />

   <s:property value="#varrequest.user.firstName" />
   <s:property value="#varrequest.user.lastName" />
   <s:property value="#varrequest.rating" />
   <s:property value="#varrequest.review" />

 </s:iterator>
Run Code Online (Sandbox Code Playgroud)

使用迭代器引用变量来获取唯一索引对象。