这是如何工作的呢?Java日期,日历和Richface问题



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

这是我的问题。我试图创建一个Calendar,在那里你可以选择一个日期,并在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}"/>

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

我也看到在日历中他们告诉我使用Calendar。但当我输入Calenders.Time.时,它不在Java中,这是因为它受到保护吗?它是如何工作与RichFaces?RichFaces可以访问它吗?

对于"如何将java.util.Calendar<rich:calendar>一起使用?"的具体问题,只需将组件绑定到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的弃用方法所误导。在<rich:calendar>中使用Date是完全可以的。你不应该像在bean的构造函数中那样,使用那些被弃用的方法来自己编程地设置日期的年/月/日等。

你的真正的问题可能有很多原因。也许<rich:calendar>没有被放在<h:form>中?也许您正在嵌套多个<h:form>组件?也许你有一个immediate="true" ?也许你在错误的时刻抓取/调试值?等等…等等…

相关内容

  • 没有找到相关文章

最新更新