Struts和ValidatorForm - >它是否适用于可变数量的表单元素?

时间:2011-02-09 05:02:12

标签: forms struts dynamic-data validation

HI,

我有一个表单,我在其中生成输入元素行(使用JavaScript)供用户输入数据。每行包含关于用户正在输入的特定框的数据(例如,高度,宽度,长度等)。我已经成功地使用了这个表单,我可以从ActionForm中读取/读出一个ArrayList对象。

我想验证这些条目以预先捕获无效条目。 (我在1.3.10) 我似乎无法找到任何关于将ValidatorForm与动态数量的表单元素一起使用的文档。也就是说,我永远不知道会输入多少行的行,我想知道是否有人成功使用Validator来验证动态表单元素?

这甚至可能吗?或者我是否已经辞职以实现.validate()方法?

是否可以对某些元素使用Validator,并将其余元素留给.validate()方法?有没有人这样做过,如果有的话,有什么陷阱?

我很感激你的意见,甚至是我可以阅读资源的指针。

1 个答案:

答案 0 :(得分:2)

您可以通过以下步骤来完成此操作 1.定义一个类(简单POJO)说DimensionBean;其中包含一行输入元素的值(如高度,宽度,长度等) 2.在Form bean(ValidatorForm的子代)中,定义DimensionBean的数组或列表。数组的名称是arrDimensionBeans 3.在validation.xml中,您可以按如下方式定义

<field property="height" indexedListProperty="arrDimensionBeans" depends="validwhen">
      <arg0 key="yourform.height.label"/>
        <var>
          <var-name>test</var-name>
          <var-value>((arrDimensionBeans[].width == null) or (*this* != null))</var-value>
        </var>
      </field>

仅当width为null或height不为null时,才会检查高度。您可以根据需要更改var值。希望这能帮助您解决问题。