Java struts2迭代器捕获特定值

Java struts2迭代器捕获特定值,java,xml,jsp,struts2,struts-tags,Java,Xml,Jsp,Struts2,Struts Tags,嗨,让我告诉你,我找了很多,但我找不到我想要的 下面是一个场景 我的jsp中有一个表,它是通过迭代器加载的,迭代器是ArrayList 报表有三个属性:参数、观察、设计 在JSP中,我将通过迭代器显示第一列和第三列的值 <s:iterator value="ReportList" status="status" var="obj"> <tr> <td><s:property value="%{#obj.parameter}" />

嗨,让我告诉你,我找了很多,但我找不到我想要的

下面是一个场景

我的jsp中有一个表,它是通过迭代器加载的,迭代器是
ArrayList

报表有三个属性:参数、观察、设计

在JSP中,我将通过迭代器显示第一列和第三列的值

<s:iterator value="ReportList" status="status" var="obj">
   <tr>
      <td><s:property value="%{#obj.parameter}" /></td>
      <td><s:textfield theme="simple" name="valOfSim" /></td>
      <td><s:property value="%{#obj.designed}" /></td>
   </tr>
</s:iterator>
现在我必须捕获第二个值,它已输入,请帮助

编辑:我的代码

让我解释一下,将调用第一个预加载方法,并通过
ArrayList
预填充值,然后用户将输入值进行观察,然后我通过此

<td><s:textfield theme="simple" name="obj[%{#status.index}].observation" /></td>

在那之后,一个submit按钮将会出现,点击这个submit动作类的方法就会被调用

打印用户输入的值(此处为空)

导入mypro.web.utility.SpringServiceLocator;
公共类myAction扩展了ActionSupport实现
模型驱动、SessionAware、ServletRequestAware、可准备{
私人Map会议;
私有模型=新模型();
公众假期准备()
{
Obj Obj=新Obj();
Obj obj2=新Obj();
Obj obj3=新Obj();
目标设定值(“10”);
对象设置参数(“X”);
model.getReportList().add(obj1);
目标设定(“11”);
对象设置参数(“y”);
model.getReportList().add(obj2);
目标设定(“12”);
对象设置参数(“Z”);
model.getReportList().add(obj3);
}
公共字符串预加载()
{
返回“成功”;
}
公共字符串提交()
{
System.out.println(“--------------------------------------------------------------
&&&&&&&&&:“+model.getReportList().size());
for(Obj Obj:model.getReportList)
{
System.out.println(“要检查的值”+obj.getObservation());//将由用户输入的值
System.out.println(“要检查的值”+obj.getRefcode());//在prepare方法中添加的值
}
返回“成功”;
} 
公共对象getModel(){
收益模型;
}
更改此选项:

<s:textfield theme="simple" name="valOfSim" />

为此:

<s:textfield theme="simple" name="obj[%{#status.index}].observation" value="" />

这将

  • 将文本字段绑定到
    obj
    元素的
    观察
    字段
  • 保留行号
  • 将显示值设置为空(不知道为什么,但如果这是您想要的…)
  • 这样,如果您的操作对obj元素有一个
    setter
    (而不仅仅是一个getter),
    当您提交包含迭代元素的表单时,您将检索用户在
    ArrayList
    中插入的所有
    observation
    值。…

    您到底有什么问题?正如您在代码段中看到的,我在jsp中显示了表,第一列和第三列是通过ArrayList第二列获取的哪个是空的将由用户输入,因此我想通过ArrayList捕获这些值,我需要知道如何捕获这些值?好的,那么您想一次提交所有字段或每行?您是否尝试过为名为myCollection的属性创建一个操作,该属性是一个集合…如ArrayList?然后每个属性都可以在表单中调用myCollection,您可能会认为它们将被添加到myCollection,然后在execute()中您可以采取一些措施将myCollection的内容放入您的reports-objects中。正如您所看到的,我的回答就是要获得准确的结果:/您尝试过了吗?它工作了吗?您有什么问题吗?嗨,andrea,我试过了您的方法它不工作。我得到的是空值,我的操作中有getter和setter,但仍然无法获取任何值在
    submit
    之后调用同一操作还是另一个操作?如果是另一个操作,则还需要在第二个操作上声明
    列表(至少与setter一起)。并确保
    obj
    类也有setter,如
    setObservation
    。请检查用于操作的拦截器堆栈:我已经看到有人引用了一个拦截器,但认为它已添加到整个堆栈中…我使用默认的拦截器堆栈,至于您之前的问题,我使用的是单操作不同的方法,我有setter,但仍然无法获得null扫描您发布了一些操作代码?它必须rk…有一个错误:)
    <s:textfield theme="simple" name="valOfSim" />
    
    <s:textfield theme="simple" name="obj[%{#status.index}].observation" value="" />