java - 这是如何运作的? Java 日期、日历和 Richface 问题

标签 java jsf richfaces

我注意到 Java 中的许多 Date 方法已被弃用,但大多数人告诉我使用 Calender

这是我的问题。我正在尝试创建一个日历,您可以在其中选择日期并在 Java 中设置日期。所以我有

public class someClass
{

    private Date startDate;
    private Date endDate;

    public void setStartDate(Date date) 
    {
        this.startDate = date;
    }

    public void setEndDate(Date date) 
    {
        this.endDate = date;
    }   

    public Date getStartDate()
    {
        return this.startDate;
    }

    public Date getEndDate() 
    {
        return this.end;
    }

}

使用 RichFaces 代码

<rich:calendar popup="true" mode="ajax"  value="#{someClass.startDate}"/>

当我在代码中手动设置它时,它似乎会显示出来,但是当我更改为不同的日期时,它永远不会设置日期。

我还看到在日历中他们告诉我使用 日历。但是当我输入 Calenders.Time. 时,它不是用 Java 编写的,是因为它受到保护吗?它如何与 RichFaces 配合使用? RichFaces 可以访问它吗?

最佳答案

对于“如何将 java.util.Calendar<rich:calendar> 一起使用?”的具体问题,只需将组件绑定(bind)到 Calendar#getTime() 即可。这又返回一个完整的 java.util.Date .

例如

public class Bean {

    private Calendar startDate;

    public Bean() {
        startDate = Calendar.getInstance(); // You need to prepopulate it.
    }

    // ...
}

 <rich:calendar value="#{bean.startDate.time}" />

但这不能解决模型中未设置值的真正问题。这是由其他原因造成的。不要被 Date 已弃用的方法误导。 。使用Date<rich:calendar>完全没问题。您只是不应该使用这些已弃用的方法来以编程方式设置日期的年/月/日/等,就像在 bean 的构造函数中一样。

您的真正问题可能有多种原因。也许<rich:calendar>未放置在 <h:form> 中?也许您正在嵌套多个 <h:form>成分?也许你在某个地方有一个 immediate="true" ?也许您在错误的时刻获取/调试该值?等等..等等..

关于java - 这是如何运作的? Java 日期、日历和 Richface 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929157/

相关文章:

java - 检查 Base64 文本是否是有效的 RSA 公钥 (4096)

java - 未找到 JSF actionListener 方法

java - JSF 2.0 将动态表单保存到数据库

java - 在 JSF 2 中动态构建 CSV

java - JSF 中的自刷新组件

java - 使用 DbUtils.resultSetToTableModel 填充数据后如何向 JTable 添加行?

java - 有没有一段时间你不会使用递归?

java多线程和静态方法

java - 如何创建通过延迟加载显示文本日志文件的 JSF 页面

java - 向 Controller 发送参数