一、implements ModelDriven写法一: public class HomeAction implements ModelDriven<Product>{ private Product product=new Product();
public String saveProduct(){ System.out.println(pro); return "saveProduct"; } @Override public Product getModel() { return product; } }
写法二: public class HomeAction implements ModelDriven<Product>{ private Product product;
public String saveProduct(){ System.out.println(pro); return "saveProduct"; } @Override public Product getModel() { product=new Product(); return product; } }
注意:不需要get,set方法。 两种写法都需要new。在getModel方法里new,可以写判断语句。 如: public Product getModel() { if(product==null){
product=new Product(); }
return product; }
struts2无法implements 两个ModelDriven,如果想要获取多个对象,可以在1个javabean中声明多个对象,前端依然用对象名点属性名的方式。
二、不 implements ModelDrivenpublic class HomeAction{ private Product product;
public String saveProduct(){ System.out.println(product); return "saveProduct"; } public void setProduct(Product product) { this.product = product; } public Product getProduct() { return product; } }
name:<input type="text" name="product.pname"> price:<input type="text" name="product.price">
注意: 1.前端需用bean去点自己的属性,bean的名字与action里的属性名相同。 2.需要set方法和get方法两个。如果没有get方法,只能获取到对象的第一个属性值,其他都为null。 3.不需要new 三、获取参数(Integer String Date)public class ParamAction { private String name; private Integer age; private Date date;
public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } public void setDate(Date date) { this.date = date; }
public void getData(){ System.out.println("name:"+name+",age:"+age+",date:"+date); } }
注意:struts2可直接获取form表单提交的值,无需extends,无需implements。前端常规写法即可。
以上三种方法,是struts2用来接收前端参数。都不需要extends ActionSupport
|