2011-08-05 41 views
2

我的任务是改进页面上的表单验证。Java struts从索引中获取属性

该网站使用的.jsp /绿豆/支柱等。目前有在页面顶部的循环打印错误到屏幕上:

<nested:iterate id="currentError" property="wizard.errors" type="java.lang.String" indexId="counter"> 
    <tr> 
     <td valign="top" class="wizardErrorText" width="2%"> 
      &gt; 
     </td> 
     <td class="wizardErrorText"> 
      <span errorId=""> 
       <bean:write name="currentError"/> 
      </span> 
     </td> 
    </tr> 
</nested:iterate> 

现在,当验证失败我已经改变了现有方法略微表示验证失败的字段的ID以及错误消息。然后,我设置了一个类似的循环,将验证失败的字段的id打印到JavaScript读取的区域,并相应地突出显示字段。

而不是有另一个循环我想使用indexId查找数组中的值并将其包含在errorId中。

有没有人建议如何做到这一点?

我试过jsp.getProperty和其他一些方法,但没有运气。

感谢 加里

+0

在*数组或*数组中?它看起来不像currentError是一个HashMap,所以在一个单独的并行数组中的ID? –

+0

是的想法是在一个平行的数组,我希望使用从第一个数组迭代计数器挑出其他表中的相应条目不幸的wizard.erroredInputs [计数器]似乎没有工作或任何其他方法我试过。 – Gary

回答

1

您应该能够像这样:

<bean:write name="wizard" property="erroredInputs[counter]" /> 

或者,完整的例子:

<nested:iterate id="currentError" property="wizard.errors" type="java.lang.String" indexId="counter"> 
    <tr> 
     <td valign="top" class="wizardErrorText" width="2%"> 
      &gt; 
     </td> 
     <td class="wizardErrorText"> 
      <span errorId="<bean:write name="wizard" property="erroredInputs[counter]" />"> 
       <bean:write name="currentError"/> 
      </span> 
     </td> 
    </tr> 
</nested:iterate> 

更多信息可以在这里找到:https://struts.apache.org/1.x/struts-taglib/indexedprops.html