如何在 Struts 2 中使用模型驱动在操作类中设置模型对象的属性值



使用以下代码:

学生行动.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
}

学生.java:

public class Student  implements java.io.Serializable {
    private Long id;
    private String name;
    private String address;
    //getter and setter
}

在 JSP 中:

<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操作时,我想初始化Studentid 属性。

怎么做?

使用操作字段设置参数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;
}

代码与文档示例中类似。

最新更新