使用Struts 2中驱动的模型上载文件操作类

时间:2015-12-27 13:42:57

标签: java struts2

我正在研究Struts 2并遇到问题:无法上传实现ActionClass的{​​{1}}中的文件

Product.java

ModelDriven

ProductAction.java

    public class Product {
    String name, image;

    public Product() {
    }

    public Product(String name, String image) {
        super();
        this.name = name;
        this.image = image;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}

我想上传 public class ProductAction extends ActionSupport implements ModelDriven<Product> { private static final long serialVersionUID = -5538774764479904797L; File image; public void setImage(File file) { System.out.println("SET IMAGE"); } public String submitPost() throws Exception { System.out.println(p.getName()); System.out.println("POST"); return SUCCESS; } Product p = new Product(); @Override public Product getModel() { return p; } } 。但是,如果ProductAction实现了ProductAction,方法ModelDriven未被调用,而setImage()未实现ProductAction,则它正常工作。怎么解决它?

1 个答案:

答案 0 :(得分:2)

image的类型更改为File和getter / setter。当您使用ModelDriven时,您不需要使用操作属性。动作类也称为控制器,不需要保持状态。在使用请求参数填充之前,Struts会将模型推送到valueStack的顶部。

String name;
File image; 
//getters and setters