我在struts2中遇到了setter和getter方法的问题。 我有一个表格: ... +作业的所有输入字段/>
和action :( addJob映射到此操作) 公共类InsertJobAction扩展ActionSupport { ... private Job job = null; public String execute(){ jobService.insert(工作); //这里的工作不是空的;那没问题 }
此操作正常;
我有一个类似的形式和动作,但是这个形式的输入字段少于第一个形式; 问题在于:在第二个动作作业的execute()中为空。为什么?? 是否依赖于字段noumber? 我的Job类中有2个构造函数,没有参数,而且每个类的所有参数都有一个;
我使用Log4j进行了调试...并且在第一种情况下,在第二种情况下到达Job构造函数。为什么??当它调用构造函数???
什么时候调用setter和getter方法b,在execute()方法之前或之后???当我有一个输入数据的表格?在execute()方法之前调用setter方法吗?
我非常困惑,因为在一个案例中它没有问题,但在第二种情况下它没有
谢谢, 安德鲁
答案 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()