使用struts2 iterator标记在jsp中获取会话变量

时间:2012-09-26 10:25:05

标签: struts2

您好我正在尝试从我的jsp中的会话迭代列表。 该列表包含复杂对象

我的代码如下所示

<s:if test="#session.rideDetails != null">    
    <s:iterator value="#session.rideDetails" status="ride123">
       <s:textfield name='test' value='<s:property value="#ride123.index"/>'></s:textfield>
       <s:textfield name='test1' value='<s:property value="#ride123.route.location.name"/>'></s:textfield>
   </s:iterator>
</s:if> 

但是我没有得到预期的结果,上面的代码中是否有语法错误?

2 个答案:

答案 0 :(得分:2)

试试这个:

<s:if test="#session.rideDetails != null">    
    <s:iterator value="#session.rideDetails" status="stat" var="ride">
       <s:property value="#stat.index"/>
       <s:property value="#ride.route.location.name"/>
   </s:iterator>
</s:if> 

您应该检查两点:

  1. 会话中是否有rideDetails
  2. 使用var属性捕获每个骑行对象。
  3. var属性不是必需的,但可以帮助保持清晰。)

答案 1 :(得分:0)

你不能在Struts2标签内嵌套标签,而不是

<s:textfield name='test' value='<s:property value="#ride123.index"/>'></s:textfield>

使用

<s:textfield name="test" value="%{#ride123.index}" />