日期:2014-05-16 浏览次数:20444 次
本文参考
http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2630
?
直接上例子:
package bruce.zhao.model; import java.util.Date; public class UserBean { private Date date = new Date(); public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
?这个Bean的属性接受Date类型的参数,按理来说,接收到HTTP传来的数据中若有相关的日期信息,我们必须剖析这个信息,再转换为Date对象,然而我们可以使用JSF的标准转换器来协助这项工作,例如:
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@page contentType="text/html;charset=GB2312"%> <f:view> <html> <head> <title>转换器示范</title> </head> <body> 设定的日期是: <b> <h:outputText value="#{user.date}"> <f:convertDateTime pattern="dd/MM/yyyy" /> </h:outputText> </b> <h:form> <h:inputText id="dateField" value="#{user.date}"> <f:convertDateTime pattern="dd/MM/yyyy" /> </h:inputText> <h:message for="dateField" style="color:red" /> <br> <h:commandButton value="送出" action="show" /> </h:form> </body> </html> </f:view>
在<f:convertDateTime>中,我们使用pattern指定日期的样式为dd/MM/yyyy,即「日/月/公元」格式,如果转换错误,则<h:message>可以显示错误信息,for属性参考至<h:inputText> 的id属性,表示将有关dateField的错误信息显示出来。
假设faces-config.xml是这样定义的:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <faces-config> <navigation-rule> <from-view-id>/*</from-view-id> <navigation-case> <from-outcome>show</from-outcome> <to-view-id>/pages/index.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class> bruce.zhao.model.UserBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>?