Jsp 在Struts中获取所选单选按钮索引

Jsp 在Struts中获取所选单选按钮索引,jsp,struts,javabeans,struts-1,apache-commons-beanutils,Jsp,Struts,Javabeans,Struts 1,Apache Commons Beanutils,我在Struts 1表单上有一些单选按钮 <input type="radio" name="productId" value="31415" /> <input type="radio" name="productId" value="31416" /> 然后在Action类中,我可以很好地从表单中获取值。例如,如果选择第一个单选按钮,则myForm.getProductId()返回31415 问题是,Struts 1中有没有一种方法可以在保持当前功能的情况下告诉

我在Struts 1表单上有一些单选按钮

<input type="radio" name="productId" value="31415" />
<input type="radio" name="productId" value="31416" />

然后在Action类中,我可以很好地从表单中获取值。例如,如果选择第一个单选按钮,则
myForm.getProductId()
返回31415

问题是,Struts 1中有没有一种方法可以在保持当前功能的情况下告诉索引选择了哪个输入字段

(在最坏的情况下,我知道我可以创建一个包含所选单选按钮的新隐藏字段,并从JavaScript更新该字段,但我也希望避免这种情况。)

说明: 单选按钮是基于集合创建的,但由于某些原因,集合的元素有时没有产品ID,因此如果有多个类似的元素,那么我无法判断选择了哪个单选按钮。但我想知道,即使在这些情况下,如何提高系统的容错性。
(我对集合的元素没有权限,它来自web服务。)

您可以对输入字段的索引名称使用索引属性

对于索引属性,
BeanUtils.populate()
使用请求参数的名称来确定调用
ActionForm

使用索引名称

<input type="radio" name="productId[0]" value="31415" />
<input type="radio" name="productId[1]" value="31416" />

没有。在99.9%的情况下,知道收音机的位置是非常不相关的。那些productId单选按钮的值来自哪里?如果它是Java中的某种集合,那么你可以很容易地找到索引。所选索引是什么,你指的是列表索引吗?@AnthonyGrist I为该索引添加了一些解释question@RomanC我是指他们在表格中的位置,只计算单选按钮。表单是否有其他输入元素?我认为这破坏了当前的功能,但是。。。我怎样才能知道选择了哪个单选按钮?字符串数组是否只在一个位置有值?比如[null,null,“1”,null]?如果单选按钮没有设置值,我会在数组中得到一个空字符串吗?您可以通过提供给setter方法的索引来获得值。很抱歉,我必须收回这个值。事实证明,这破坏了单选按钮的功能。如果没有相同的名称,它们将开始充当独立的单选按钮组。
private String[] productId;

public String getProductId(int index) {
  return productId[index];
}
public void setProductId(int index, String productId) {
  productId[index] = productId;
}
public String[] getProductId( ) {
  return productId;
}