【问题标题】:Getter and Setter - POJO object - Problem with input data in Struts2Getter 和 Setter - POJO 对象 - Struts2 中的输入数据问题
【发布时间】:2010-01-21 21:46:40
【问题描述】:

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

和动作:(addJob 映射到这个动作) 公共类 InsertJobAction 扩展 ActionSupport{ ... 私人工作工作=空; 公共字符串执行(){ 工作服务.插入(工作); //这里的工作不为空;那没问题 }

  • 工作的getter和setter }

此操作正常;

我有一个类似的表单和操作,但是这个表单的输入字段比第一个表单少; 问题就在这里:在第二个动作作业的 execute() 中为空。为什么?? 是否取决于字段编号? 我的 Job 类中有 2 个构造函数,一个没有参数,一个具有所有类的每个字段的参数;

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

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

我很困惑,因为在某种情况下它可以正常工作,但在第二种情况下却没有

谢谢, 安德鲁

【问题讨论】:

  • 你的帖子真的很难读。请使用
     标签显示您的代码,以便正确显示。

标签: struts2


【解决方案1】:

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

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

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()

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2021-01-26
    相关资源
    最近更新 更多