为什么struts2不能用于泛型

时间:2011-06-26 12:47:13

标签: generics struts2

我正在努力做这项工作,但没有运气。

下面是示例代码,当我在jsp中调用edit方法时,所有值都被填充,但是当我想保存更改时,在OGNL中获取异常。 也许stuts2与泛型不兼容。任何建议都不仅仅是值得赞赏的。

public abstract class ActionHelper<T> extends ActionSupport{

    protected T entity;
    protected Integer id;

    public void setId(Integer id){
        this.id=id;
    }

    public void setEntity(T entity){
        this.entity=entity;
    }

    public void getEntity(T entity){
        this.entity=entity;
    }

    public String edit(){
        this.entity=fillEntity();
        return "edit";
    }
    public String save(){
        genericDao.save(entity);

    }
    protected abstract T fillEntity();
}

public class PersonAction extends ActionHelper<Person>{
    Person fillEntity(){
        return genericDao.find(id,Person.class);   
    }
}

<s:form action="person_save" method="post">     <s:hidden name="entity.id">     <s:textfield name="entity.name">     <s:textfield name="entity.surname"> </form>

1 个答案:

答案 0 :(得分:1)

表单的开始标记是:s:form但是结束标记只是一个html表单标记...可能是拼写错误?

你正在使用fillEntity的默认访问说明符而不是遵循java命名约定,试试这个:

public Person getEntity(){
    return genericDao.find(id,Person.class);   
}

现在OGNL将能够在PersonAction中找到“实体”。