2011-09-02 55 views
3

我試圖寫這樣不掛毯5有無複合材料部件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" xmlns:p="tapestry:parameter"> 
    <t:select t:id="yearField" t:value="year" t:blankOption="always" t:model="yearModel" class="select"/> 
    <t:select t:id="monthField" t:value="month" t:blankOption="always" t:model="monthModel" class="select"/> 
</t:container> 

複合組件,這樣我可以使用它像這樣

<t:dateselector t:value="testDate"></t:dateselector> 

但我不能準確地找到其方法來獲取單個元素並構造日期元素。有任何想法嗎?

回答

3

你必須添加一個valueparameterDate類型以及yearmonth性能getter和setter你component class

public class MyDatePicker { 
    @Parameter 
    private Date value; 

    public Integer getYear() { ... } 
    public void setYear(Integer year) { ... } 
    public Integer getMonth() { ...} 
    public void setMonth(Integer month) { ... } 

} 

你可以使用Java的Calendar或大大優於Joda Time獲取/設置日期值的不同部分。

+1

表單控制組件比其他類型的組件稍微複雜一些......你必須知道初始化渲染與最終表單提交。例如,您可能想要處理提交時值參數爲空的情況。 http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/SubmitNotifier.html組件可以在那裏幫助。 –

+0

感謝您的幫助。我完全按照你的建議做了它,它的工作非常完美 –