我注意到 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/