Getter和Setter - POJO对象 - Struts2中输入数据的问题

时间:2010-01-21 21:46:40

标签: struts2

我在struts2中遇到了setter和getter方法的问题。 我有一个表格:         ... +作业的所有输入字段/>

和action :( addJob映射到此操作) 公共类InsertJobAction扩展ActionSupport { ...    private Job job = null;    public String execute(){       jobService.insert(工作); //这里的工作不是空的;那没问题    }

  • getter and setter for job }

此操作正常;

我有一个类似的形式和动作,但是这个形式的输入字段少于第一个形式; 问题在于:在第二个动作作业的execute()中为空。为什么?? 是否依赖于字段noumber? 我的Job类中有2个构造函数,没有参数,而且每个类的所有参数都有一个;

我使用Log4j进行了调试...并且在第一种情况下,在第二种情况下到达Job构造函数。为什么??当它调用构造函数???

什么时候调用setter和getter方法b,在execute()方法之前或之后???当我有一个输入数据的表格?在execute()方法之前调用setter方法吗?

我非常困惑,因为在一个案例中它没有问题,但在第二种情况下它没有

谢谢, 安德鲁

1 个答案:

答案 0 :(得分:0)

我假设您正在使用会话来存储数据,并且setter中的数据需要从会话中提取有效的bean。

根据操作说明调用方法的顺序。例如,第一次运行POJF时不会调用构造函数,但第二次传递会执行。此外,如果您要提交表单数据,则只有在处理完数据后才会执行execute。有关基于操作的调用的基本堆栈跟踪,请参阅以下内容。

Call Stack
## First Time Run ##
execute()
getTodayDate()
getTodayDate()
getTomorrowDate()
getTomorrowDate()
getBirthDate()
getBirthDate()
getDesc()

## Second Pass ##
DateBeanAction()
setSession(Map session)
execute()
getTodayDate()
getTodayDate()
getTomorrowDate()
getTomorrowDate()
getBirthDate()
getBirthDate()
getDesc()

## Submit ##
DateBeanAction()
setSession(Map session)
setBirthDate(Object birthDate)
setTodayDate(Object value)
setTomorrowDate(Object value)
setDesc(String desc)
execute()
getTodayDate()
getTodayDate()
getTomorrowDate()
getTomorrowDate()
getBirthDate()
getBirthDate()
getDesc()