Java 如何在Struts 2中使用ModelDriven为action类中的模型对象设置属性值?
使用此代码: StudentAction.java: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
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
对象。但这在迭代中,但这不是初始化。我编辑了我的答案,以向您显示模型的初始化位置。