JSF でカスタマイズされた形式で表示Date
(または) する方法は?Timestamp
<h:commandButton>
私はJSF 1.1を使用しています
JSF<h:commandButton>
はコンバーターをサポートしておらず、テキストの子もサポートしていません。ヘルパー バッキング Bean メソッドでジョブを実行する必要があります。
<h:commandButton ... value="#{bean.dateInCustomizedFormat}" />
と
public String getDateInCustomizedFormat() {
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
または、このために再利用可能なカスタム EL 関数を作成します。
<%@taglib prefix="my" uri="http://example.com/el/functions" %>
...
<h:commandButton ... value="#{my:formatDate(bean.date, 'yyyy-MM-dd')}" />
と
package com.example.el;
import java.text.SimpleDateFormat;
import java.util.Date;
public final class Functions{
private Functions() {
// Hide constructor.
}
public static String formatDate(Date date, String pattern) {
Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
return new SimpleDateFormat(pattern, locale).format(date);
}
}
そして/WEB-INF/functions.tld
(JSF 1.1を考えると、Faceletsではなく、まだJSPを使用していると仮定します):
<?xml version="1.0" encoding="UTF-8" ?>
<taglib
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>Custom Functions</short-name>
<uri>http://example.com/el/functions</uri>
<function>
<name>formatDate</name>
<function-class>com.example.el.Functions</function-class>
<function-signature>java.lang.String formatDate(java.util.Date, java.lang.String)</function-signature>
</function>
</taglib>
(注: Servlet 2.4/JSP 2.0 を使用している場合は、と をそれぞれと2_1
に置き換えてください)2.1
2_0
2.0