0

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

这是场景

我的jsp中有一个表正在通过迭代器加载,它是ArrayList<Report>

报告具有三个属性参数,观察,设计

在 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>
Parameter           observation                designed
X                                                10
y                                                11
Z                                                12

现在我必须捕获已输入的第二个值,请帮助!

编辑:我的代码

让我解释一下,第一个 preload 方法将被调用,值将被预填充ArrayList<Obj>,然后用户将输入值进行观察,然后通过这个捕获它

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

之后,将出现一个提交按钮,单击该操作类的提交方法将被调用

打印用户输入的值(这里是 NULL)

import mypro.web.utility.SpringServiceLocator;

public class myAction extends ActionSupport implements      
ModelDriven,SessionAware,ServletRequestAware,Preparable  {
private Map<String, Object> session;
private Model  model = new Model();

public void prepare()
{

            Obj obj = new Obj();
    Obj obj2 = new Obj();
    Obj obj3 = new Obj();

    obj.setDesigned("10");
    obj.setParameter("X");
    model.getReportList().add(obj1);


    obj.setDesigned("11");
    obj.setParameter("y");
    model.getReportList().add(obj2);

            obj.setDesigned("12");
    obj.setParameter("Z");
    model.getReportList().add(obj3);
   }



  public String preload()
   {

  return "success";
   }


  public String submit()
   {


  System.out.println("------------------------------------------------------  
  &&&&&&&&&:"+model.getReportList().size());
    for(Obj obj : model.getReportList)
    {
        System.out.println("the value is to be checked"+obj.getObservation());//value which will be entered by user
        System.out.println("the value is to be checked"+obj.getRefcode()); //value which was added in the prepare method
    }



        return "success";
      } 





       public Object getModel() {

    return model;
}
4

1 回答 1

1

改变这个:

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

对此:

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

这将

  1. 将您的文本observation字段绑定到obj元素的字段;
  2. 保留行号;
  3. 将显示的值设置为空(不知道为什么,但如果这是你想要的......)

这样,如果您的 Action 有一个setter用于您的 obj 元素(而不仅仅是一个 getter),当您提交包含迭代元素的表单时,您将检索observation用户在您的ArrayList<Obj>...

于 2012-11-22T16:28:24.453 回答