我正在努力做这项工作,但没有运气。
下面是示例代码,当我在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>
答案 0 :(得分:1)
表单的开始标记是:s:form但是结束标记只是一个html表单标记...可能是拼写错误?
你正在使用fillEntity的默认访问说明符而不是遵循java命名约定,试试这个:
public Person getEntity(){
return genericDao.find(id,Person.class);
}
现在OGNL将能够在PersonAction中找到“实体”。