Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Struts 2中使用ModelDriven为action类中的模型对象设置属性值?_Java_Jsp_Struts2_Ognl_Model Driven - Fatal编程技术网

Java 如何在Struts 2中使用ModelDriven为action类中的模型对象设置属性值?

Java 如何在Struts 2中使用ModelDriven为action类中的模型对象设置属性值?,java,jsp,struts2,ognl,model-driven,Java,Jsp,Struts2,Ognl,Model Driven,使用此代码: StudentAction.java: public class StudentAction extends ActionSupport implements ModelDriven { private List studentList; Student student; StudentDAO sdo = new StudentDAO(); public String delete() { System.out.printl

使用此代码:

StudentAction.java:

public class StudentAction extends ActionSupport implements ModelDriven {

    private List studentList;
    Student student;
    StudentDAO sdo = new StudentDAO();
   
    public String delete() {
        System.out.println("delete action");
        System.out.println(student.getId()); //not setting value of id
        
        sdo.delete(student.getId());

        return SUCCESS;
    }

  @Override
  public Object getModel() {
    return student;
 }
 //getter and setter
}
public class Student  implements java.io.Serializable {
    private Long id;
    private String name;
    private String address;
    //getter and setter
}
<s:iterator value="studentList" var="ss">
    <s:property value="id"/>
    <s:property value="name"/>
    <s:property value="address"/>
    <a href="delete?id= <s:property value="id"/>">delete</a><br>
</s:iterator><br>
Student.java:

public class StudentAction extends ActionSupport implements ModelDriven {

    private List studentList;
    Student student;
    StudentDAO sdo = new StudentDAO();
   
    public String delete() {
        System.out.println("delete action");
        System.out.println(student.getId()); //not setting value of id
        
        sdo.delete(student.getId());

        return SUCCESS;
    }

  @Override
  public Object getModel() {
    return student;
 }
 //getter and setter
}
public class Student  implements java.io.Serializable {
    private Long id;
    private String name;
    private String address;
    //getter and setter
}
<s:iterator value="studentList" var="ss">
    <s:property value="id"/>
    <s:property value="name"/>
    <s:property value="address"/>
    <a href="delete?id= <s:property value="id"/>">delete</a><br>
</s:iterator><br>
在JSP中:

public class StudentAction extends ActionSupport implements ModelDriven {

    private List studentList;
    Student student;
    StudentDAO sdo = new StudentDAO();
   
    public String delete() {
        System.out.println("delete action");
        System.out.println(student.getId()); //not setting value of id
        
        sdo.delete(student.getId());

        return SUCCESS;
    }

  @Override
  public Object getModel() {
    return student;
 }
 //getter and setter
}
public class Student  implements java.io.Serializable {
    private Long id;
    private String name;
    private String address;
    //getter and setter
}
<s:iterator value="studentList" var="ss">
    <s:property value="id"/>
    <s:property value="name"/>
    <s:property value="address"/>
    <a href="delete?id= <s:property value="id"/>">delete</a><br>
</s:iterator><br>



当我将
id
的值从JSP传递到
delete
操作时,我想初始化
Student
id
属性


如何执行此操作?

使用操作字段设置参数
id

public class StudentAction extends ActionSupport {

    private List studentList;
    Student student;
    StudentDAO sdo = new StudentDAO();
     private Long id;
    //getter and setter


    public String delete() {
        System.out.println("delete action");
        System.out.println(getId()); 

        sdo.delete(getId());

        return SUCCESS;
    }
}
如果要实现
ModelDriven
,还需要为模型添加代码

private Student model = new Student();

public Object getModel() {
  return model;
}

代码如文档所示。

RomanC所问的是您的模型在哪里?您如何在您的系统中实现
ModelDriven
功能action@SaifAsif实际上,我需要知道它是如何实现的,因为没有它,代码就无法编译。这是另一回事。我假设它由OP@SaifAsif不,这是代码的必要部分,并且您的假设是不确定的。对于“代码的必要部分”,而不是使用单独的Id,我要初始化
Student
pojo的Id属性
sdo.delete(getId())我想使用
sdo.delete(student.getId())这样,您应该在设置参数之前实例化一个
Student
对象。但这在迭代中,但这不是初始化。我编辑了我的答案,以向您显示模型的初始化位置。