【问题标题】:XPages/JSF: Date value binding to managed bean reads but doesn't writeXPages/JSF:绑定到托管 bean 的日期值读取但不写入
【发布时间】:2014-07-18 19:53:08
【问题描述】:

我创建了一个带有支持 bean 的小型 XPage 搜索表单。这对字符串很有效,一切都使用表达式语言绑定,我可以访问我的 bean 中的值来组成实际的搜索字符串。

但是,这似乎不适用于日期。我有一个如下所示的日期字段:

<xp:inputText
    themeId="Field.Date"
    id="inputStartDate" value="#{Search.calStart}">
    <xp:this.converter>
        <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
</xp:inputText>

我的 bean 有一个非常基本的 getter/setter:

public Date getCalStart() {
    return calStart;
}

public void setCalStart(Date calStart) {
    this.calStart = calStart;
}

问题在于,虽然该字段将从支持 bean 填充,但该 bean 不受该字段的影响。因此,如果在我的构造函数中将日期字段设置为 2014 年 7 月 18 日,它在我的页面上看起来不错。但是如果我在页面上选择一个日期并执行刷新,bean 中的值不会改变。日期仍然是 null 或我在 bean 中初始化它们的任何内容。

转换器是否存在破坏值绑定的问题(除了在我的 bean 中将其作为 Java Date 处理,我正在这样做)?

【问题讨论】:

  • 看起来不错。你是如何进行刷新的?它来自提交按钮吗?是整页刷新还是部分刷新?还只是为了仔细检查getter正在访问您的bean,如果您在构造函数中将初始值更改为过去的日期,新值是否显示?我认为有时今天的日期会根据多米诺骨牌版本显示为默认日期
  • 你也可以检查一下你的bean中的import语句,肯定是java.util.Date吗?有时 IDE 会选择 java.sql.Date 之类的东西
  • 只是检查...没有转换器也能正常工作,对吧?
  • 感谢所有这些回复。 @CameronGregor - 我有按钮尝试部分刷新和完全刷新。我很确定我使用的是 java.util.Date。
  • @DavidLeedy - 我刚刚从 xsp 中删除了转换器,并将我的 bean 中的所有内容都更改为 String,它运行良好。

标签: java jsf xpages


【解决方案1】:

我之前在 Date 和 Beans 中遇到过这个问题,但在 Xpages 中没有。
我所做的是用我自己的方法绕过 getter/setter,并在其中转换为我想要的格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2011-03-07
    • 2012-01-27
    • 2015-03-11
    • 2020-05-06
    相关资源
    最近更新 更多