Jsf 2 在JSF页面上显示当前日期
可以在JSF中显示当前日期(今天)而不使用支持bean吗 我有下面的代码片段,但没有成功Jsf 2 在JSF页面上显示当前日期,jsf-2,Jsf 2,可以在JSF中显示当前日期(今天)而不使用支持bean吗 我有下面的代码片段,但没有成功 <div class="leftSide">Today's date #{currentDate}</div> 今天的日期#{currentDate} 或 在JSF中,您可以使用隐式EL对象会话,它提供对当前会话的访问。HttpSession#getLastAccessedTimetime 。。。返回客户端上次发送与此关联的请求的时间 会话,作为自1970年1月1日午夜以来的毫秒
<div class="leftSide">Today's date #{currentDate}</div>
今天的日期#{currentDate}
或
在JSF中,您可以使用隐式EL对象
会话
,它提供对当前会话的访问。HttpSession#getLastAccessedTime
time
。。。返回客户端上次发送与此关联的请求的时间
会话,作为自1970年1月1日午夜以来的毫秒数
GMT,并由容器接收请求的时间标记
因此,您可以在facelet中使用以下代码段:
<h:outputText value="#{session.lastAccessedTime}">
<f:convertDateTime pattern="MM/dd/yyyy" type="date" />
</h:outputText>
这将是服务器时间,不同时区的时间可能不同于客户端时间
但您也可以使用javascript解决方案,如下所述:
您可以在
faces config.xml
中将java.util.Date
的实例注册为请求范围的bean
<managed-bean>
<managed-bean-name>currentDate</managed-bean-name>
<managed-bean-class>java.util.Date</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
或者你也可以使用Omnifaces。我很惊讶BalusC没有告诉你这个解决方案(我认为他是一个伟大的Omnifaces贡献者)。也许这是因为使用Omnifaces仅仅在页面中显示一个简单的日期对某些人来说可能是一种过激的行为 无论如何,如果您的项目已经使用了,那么默认情况下会公开两个托管bean,您可能会发现其中一个非常方便。根据指定,一旦Omnifaces添加到项目中,就可以使用
{now}
托管bean
例如,要设置Primefaces日历的最大日期,我只编写了以下内容:
<p:calendar id="myCalendar" pattern="dd/MM/yyyy"
value="#{mybean.myDate}" maxdate="#{now}"/>
我想{now}
托管bean可以在更多的情况下使用,可能您的情况也是如此
如果你的项目还没有使用Omnifaces,我建议你看看他们的规范,看看它对你有多大帮助。
例如,我使用他们的
validateOrder
标记来确保两个日期的顺序正确。您可以使用PrimeFaces提供的标记
<p:clock pattern="HH:mm:ss dd-MM-yyyy"/>
OmniFaces在我发布答案的那一刻还不存在:)谜团解决了!;)。。。我不知道Omnifaces这么年轻。不管怎么说,这是一项伟大的工作<代码>我认为他是一位伟大的全能贡献者。巴卢斯克创作了OmniFaces。这是他的宝贝。session
是否保证在每个请求中都存在(非空)?实际上,lastAccessTime生成上一个请求的时间。这可能比当前时间少几分钟。
<p:calendar id="myCalendar" pattern="dd/MM/yyyy"
value="#{mybean.myDate}" maxdate="#{now}"/>
<p:clock pattern="HH:mm:ss dd-MM-yyyy"/>