【问题标题】:How the JSF Converter f:convertDateTime works?JSF 转换器 f:convertDateTime 如何工作?
【发布时间】:2014-05-26 17:45:12
【问题描述】:

我有一个关于 JSF 转换器

的问题
f:convertDateTime

我在这个上下文中使用这个转换器(bean.date 代表 Java 类java.util.Date):

<h:inputText id="date" value="#{bean.date}" label="Enter Date" >
   <f:convertDateTime pattern="d-M-yyyy" />
</h:inputText>

此转换器仅用于在来自网络服务器的响应中为用户格式化 xhtml 页面?

或者,如果请求被发送到网络服务器并以模式格式d-M-yyyy 存储在支持 bean 中,输入的值是否会以模式d-M-yyyy 格式化?

是否可以在不使用任何类型的 f:convertDateTime 的情况下将一些日期值从 xhtml 页面插入到支持 bean 中,或者这绝对是必要的吗?

问候 马尔维夫

【问题讨论】:

  • 你想要达到什么目的,或者为什么f:convertDateTime 对你没有好处?
  • 我在问题的描述中提到,我想将 java.util.date 存储在支持 bean 中,我的问题是,是否需要转换器?
  • 好的。转换器是必须的,因为 JSF 需要将 String 转换为 Date 对象
  • 但是有必要在我的xhtml页面中直接写JSF特定的转换器组件吗(请看上面的代码示例)?或者它可以省略,jsf框架在后台自动使用这个转换器?
  • 正如@Eelke 所写,你必须把它放在那里。因为 JSF 不能自动解析日期,例如1.2.可能是 2 月 1 日或 1 月 2 日。这就是为什么您总是必须定义模式的原因。

标签: java jsf


【解决方案1】:

转换器用于两种方式的转换,它是必需的,因为写入日期的方式有很多。

如果您使用日期特定的 JSF 组件,则不必使用转换器。 Richfaces 和 Primefaces 等组件库提供了不需要转换器并直接验证用户输入的日期组件。

【讨论】:

  • 但是有必要在我的xhtml页面中直接写JSF特定的转换器组件吗(请看上面的代码示例)?或者它可以省略,jsf框架在后台自动使用这个转换器?
猜你喜欢
  • 2012-12-09
  • 2014-03-24
  • 2016-12-24
  • 2013-02-20
  • 2012-12-26
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
相关资源
最近更新 更多