struts2中字段验证程序的动态字段名

struts2中字段验证程序的动态字段名,struts2,struts-validation,Struts2,Struts Validation,我有这门课 public Class Employee { String name; List<Address> listOfAddress; } public Class Address { String location; String streetName; } 公共类员工 { 字符串名; 地址列表; } 公共课堂演讲 { 字符串位置; 字符串streetName; } 在我的JSP页面中,我这样填写 <s:textfield id

我有这门课

public Class Employee
{
    String name;
    List<Address> listOfAddress;
}

public Class Address
{
    String location;
    String streetName;
}
公共类员工
{
字符串名;
地址列表;
}
公共课堂演讲
{
字符串位置;
字符串streetName;
}
在我的JSP页面中,我这样填写

 <s:textfield id="streetName" name="listOfAddress[%{listOfAddress.size()}].streetName" size="20" maxlength="24" cssStyle="width: 100px" />

每次我提交页面时,列表中会添加一个时间地址对象,因此大小会增加一个。 当我查看上一个文本字段的源HTML时,其名称类似于listOfAddress[0]。streetName,如果我在成功添加后提交JSP页面,它将返回到同一页面,并且此文本字段的名称将为listOfAddress[1]。streetName 如果您查看它的HTML源代码

像这样,我可以向同一个Employee对象添加任意多个地址

到目前为止一切正常。问题是当我想验证此字段时,我无法验证,因为它是动态的 如果我把这个验证放进去,它只会在第一次验证它

     <field name="listOfAddress[0].streetName">
        <field-validator type="requiredstring" short-circuit="true">
           <param name="trim">true</param>
           <message>sorry this field is required field</message>
       </field-validator>
    </field> 

真的
抱歉,此字段是必填字段
我想要的是根据列表的大小使列表“listOfAddress”的索引动态变化

我不知道如何从jsp传递调用

我可以这样做吗

    <field name="listOfAddress[**${dynamic index value}**].streetName">
        <field-validator type="requiredstring" short-circuit="true">
           <param name="trim">true</param>

           **<param name="myIndex">${dynamic index value}</param>**

           <message>sorry this field is required field</message>
       </field-validator>
    </field> 

真的
**${动态索引值}**
抱歉,此字段是必填字段
或者将动态值传递给自定义验证器


请帮助我,当索引是动态的时如何验证列表

使用访问者验证程序。请参阅。

我很困惑,您得到了
listOfAddress[%{listOfAddress.size()}].streetName
,如果列表中有两个项目,您如何访问
listOfAddress[2]
此listOfAddress[%{listOfAddress.size()}]。streetName的目的是让ModelDriven直接映射listOfAddress的字段,看看问题开头的两个类,一切正常,问题是当我有一个列表的动态索引时如何验证它。在我的JSP页面中,我有要添加的Employee类的字段,在页面的按钮处,我使用ajax向同一个Employee添加多个地址。因此,它们在页面的按钮处显示为网格,位于员工信息下