java - struts2 迭代器捕获特定值

标签 java xml jsp struts2 struts-tags

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

这是场景

我的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

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

编辑:我的代码

让我解释一下将调用第一个预加载方法,并且将通过 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;
}

最佳答案

更改此:

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

对此:

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

这将

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

这样,如果您的操作有 setter对于你的 obj 元素(而不仅仅是 getter), 当您提交包含迭代元素的表单时,您将检索所有 observation用户在 ArrayList<Obj> 中插入的值...

关于java - struts2 迭代器捕获特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515824/

相关文章:

java - 泛型定义

java - 解码意外元素错误

java - Spring 3 applicationContext-security-JDBC.xml 有 bean :bean not bean?

java - SELECT FOUND_ROWS() 总是返回 1,如何解决这个问题

java - 如何在jsp中使用属性文件

java - 如何在嵌入式 Tomcat 上定义 tomcat-users.xml?

java - 将 JSON 数据从 JQUERY 传递到 java Controller 时出现异常

java - 加密/解密java类并使用自定义类加载器在tomcat中实现和部署

php - 使用 xmlns :xlink attribute in a node 创建 XML

java.lang.NoClassDefFoundError : org/apache/jsp/_xxx wrong name: com/ibm/_jsp/_xxx