我有一个jsp页面,其中包含员工详细信息,如下所示。
AddEmp.jsp
<th>First Name :</th>
<td><input type = "text" id ="firstName" name = "firstName" value= ""></td>
<th>Middle Name :</th>
<td><input type = "text" id ="middleName" name = "middleName" value= ""></td>
<th>Last Name :</th>
<td><input type = "text" id ="lastName" name = "lastName" value= ""></td>
提交表格后,我获得了控制器中的值
public class contTest extends ActionSupport{
public String firstName;
public String lastName;
public String execute(){
System.out.println("firstName-->>>"+firstName);
System.out.println("lastName-->>>"+lastName);
return SUCCESS;
}
}
Struts 2.0自动设置值(定义为Public)并且能够访问它。
我的问题是 - !!我有一个员工的DAO,其中包含以下所有详细信息。
public class Employee implements java.io.Serializable{
public String firstName;
public String lastName;
public String getFirstName(){
return firstName;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public String getLastName(){
return lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
}
一旦我的HTML表单从JSP提交,我希望所有字段都设置为DAO,并将直接调用控制器内的DAO,而是手动定义控制器中的每个字段。任何人都可以帮忙吗? Thx提前。
P.S:我是struts 2.0的新手。
更新1: 谢谢大家为您的回复。我对你的知识感到嫉妒。
我尝试msr方式,这就是我想要的结果。 我接受msr回复作为答案。 msr你可以告诉我们实施的概念的名称,我想学习并了解我们的朋友alexander建议的ModelDriven Logic的好处。
任何人都可以用一些简单的例子说明吗?
答案 0 :(得分:3)
public class contTest extends ActionSupport{
public Employee emp1;
public String execute(){
System.out.println("firstName-->>>"+emp1.getFirstName());
System.out.println("lastName-->>>"+emp1.getLastName());
return SUCCESS;
}
//Create Setter and Getter of emp1 object
}
和AddEmp.jsp
<th>First Name :</th>
<td><input type = "text" id ="firstName" name = "emp1.firstName" value= ""></td>
<th>Last Name :</th>
<td><input type = "text" id ="lastName" name = "emp1.lastName" value= ""></td>
答案 1 :(得分:0)
你必须为你的动作类实现Model ModelDriven接口。它具有方法getModel()方法来返回Employee的对象。请参阅此链接:http://struts.apache.org/release/2.3.x/docs/model-driven.html
使用ModelDriven方法时,需要初始化Model对象((Employee)),因此框架会自动将表单数据传输到Employee类