2010-08-18 54 views
4

我想在h:outputText中顯示類似「Mary1010-10-20」的內容。日期值存儲在MBean的稱爲date1的字段中,而用戶名存儲在MBean的稱爲username的字段中。我使用以下EL表達式和UI控件:使用<f:convertDateTime>格式化日期並將其顯示在<h:outputText>中

<h:outputText value="#{MBean.date1} by #{MBean.username}"> 
    <f:convertDateTime pattern="YYYY-MM-DD" timeZone="#{configMB.timeZone}" /> 
</h:inputText> 

該值可以顯示。但是,它忽略了由f:convertDateTime指定的日期格式。無論我如何更改數據格式,它總是顯示諸如「瑪麗」的東西「2010-06-08 12:35:22.0」。我怎麼解決這個問題??

更新:Zenzen的解決方案適用於以下代碼更改。

<h:outputFormat value="{0, date, yyyy-MM-dd} by #{1}"> 
    <f:param value="#{MBean.date1}" /> 
    <f:param value="#{MBean.username}" /> 
</h:outputFormat> 

但是我可以格式化的方法,使用喜歡h:outputFormat<f:param>只讀h:inputText價值?有時顯示的值太長,使用<h:outputFormat>將生成包含格式化消息的span標記。我想要獲得類似<input type="text">的效果,UI控件具有固定長度,並且用戶可以滾動查看消息(如果消息是太長。或者,如何使用CSS或JavaScript格式化使行爲看起來像<input type="text">的span標籤?

回答

16

你可以做這樣的事情:

<h:outputFormat value="{0, date, yyyy-MM-dd} by #{MBean.username}"> 
    <f:param value="#{MBean.date1}" /> 
</h:outputFormat> 

我敢肯定它會與value="{0, date, yyyy-MM-dd}"不知道工作,如果evertyhing將增加"by #{MBean.username}"雖然後確定。

+0

It works !!非常感謝。但是,我可以使用'h:outputFormat'和''這樣的方法格式化只讀'h:inputText'的值嗎?有時顯示的值很長,使用'會生成包含格式化消息的span標記。我想要獲得類似於的效果,UI控件如果消息太長,固定長度和用戶可以滾動查看消息。或者,如何使用CSS或JavaScript格式化使行爲看起來像「」的span標記? – 2010-08-19 03:34:23

+1

這是一個新的獨立問題。向HTML/CSS/JS男孩提出一個新問題。這個問題已被回答。標記最有用的答案接受 - 好吧,只有一個:) – BalusC 2010-08-19 11:20:57

+1

該解決方案缺少的一件事是時區的規範。有什麼辦法來完成與h:outputFormat? – 2012-04-16 17:20:43

相關問題