JSF转换器属性
我试图在faces配置中注册不同的转换器实例,使用一个标准的转换器类,将不同的参数传递给它 下面的代码注册了两个DateTimeConverter,第一个用于包含时间的日期,第二个仅用于时间。但是pattern属性从未设置过。这能做到吗JSF转换器属性,jsf,properties,converter,Jsf,Properties,Converter,我试图在faces配置中注册不同的转换器实例,使用一个标准的转换器类,将不同的参数传递给它 下面的代码注册了两个DateTimeConverter,第一个用于包含时间的日期,第二个仅用于时间。但是pattern属性从未设置过。这能做到吗 <converter> <converter-id>dateTimeConverter</converter-id> <converter-class>javax.faces.convert.Dat
<converter>
<converter-id>dateTimeConverter</converter-id>
<converter-class>javax.faces.convert.DateTimeConverter</converter-class>
<property>
<property-name>pattern</property-name>
<suggested-value>yyyy-MM-dd HH:mm:ss</suggested-value>
</property>
</converter>
<converter>
<converter-id>timeConverter</converter-id>
<converter-class>javax.faces.convert.DateTimeConverter</converter-class>
<property>
<property-name>pattern</property-name>
<suggested-value>HH:mm:ss</suggested-value>
</property>
</converter>
日期时间转换器
javax.faces.convert.DateTimeConverter
图案
yyyy MM dd HH:MM:ss
时间转换器
javax.faces.convert.DateTimeConverter
图案
HH:mm:ss
不幸的是,通过faces config.xml
这是不可能的。运行时未使用您正在尝试的
声明
如果您只想在一个位置控制模式,那么您所能做的最好的事情就是创建一个自定义转换器。为了这个特殊的目的,这并不难。只需扩展DateTimeConverter
,并在构建过程中设置模式。以下是一个基本示例:
public MyDateTimeConverter extends DateTimeConverter() {
public MyDateTimeConverter() {
setPattern("yyyy-MM-dd HH:mm:ss");
}
}
当然,您可以从其他地方获取模式,例如,类路径中的属性文件或xml文件
按如下方式注册此转换器:
<converter>
<converter-for-class>java.util.Date</converter-for-class>
<converter-class>com.example.MyDateTimeConverter</converter-class>
</converter>
日期类型
com.example.MyDateTimeConverter
应该是这样。不需要
f:converter
或UIOutput#setConverterId()
确实不需要。编辑您的问题,取消选中“社区维基”复选框并保存。社区维基仅用于主观问题/讨论。你的问题远非主观的。这只是一个技术问题。是的,我不知道那是什么。但是编辑页面中没有复选框可以禁用它:(选中后,社区wiki无法取消选中。感谢您的解释。但是faces-config.xml中的这些属性有什么用途?(属性标记是xsd的一部分)。@JurgenHannaert,请看,它说:“属性”和“属性”元素旨在允许组件开发人员向工具和用户更完整地描述其组件。这些元素没有必需的运行时语义。事实上,例如[ctrl+space]自动完成工具提示/描述。