我注意到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"
?也许你在错误的时刻抓取/调试值?等等…等等…