在我的 ActivityFilterControl 组件中,我有两个 DateField
,它们(在 .tml 文件中)位于 fieldset
部分内:
<fieldset class="float_right">
<t:label for="dateFrom">${message:search.form.label.dateFrom}</t:label>
<t:datefield t:id="dateFrom" t:mixins="jquery/CustomDatepicker" t:value="dateFrom"
t:params="calendarParams.params" format="prop:calendarParams.dateFormat" messages="messages" class="datepicker"/>
<t:label for="dateTo">${message:search.form.label.dateTo}</t:label>
<t:datefield t:id="dateTo" t:mixins="jquery/CustomDatepicker" t:value="dateTo"
t:params="calendarParams.params" format="prop:calendarParams.dateFormat" messages="messages" class="datepicker"/>
</fieldset>
CustomDatepicker 是这个: http://tapestry5-jquery.com/mixins/docscustomdatepicker
如何为 CustomDatepicker
s/DateField
s 设置默认值?以下是该组件的示例代码:
public class ActivitiesFilterControl extends FilterControl {
@Persist
@Property
private Date dateFrom;
@Persist
@Property
private Date dateTo;
@InjectComponent("dateFrom")
private DateField dateFromField;
@InjectComponent("dateTo")
private DateField dateToField;
}
最佳答案
只需在渲染阶段初始化组件的字段,例如通过设置渲染注释方法:
@SetupRender
final void init() {
dateFrom = new Date(); // or sthg else
dateTo = new Date(); // or sthg else
}
(无需在 Java 类中注入(inject)嵌入组件 - 代码的属性“dateFromField”和“dateToField”)
对于用于 CustomDatepicker mixin 的 params
参数的 calendarParams
属性,同样的事情:您可以在同一位置初始化它。
这会告诉 Tapestry 用于生成发送回浏览器进行显示的 HTML 页面的初始值。
注意:关于表单字段值“dateFrom”和“dateTo”,在 @SetupRender
方法中设置的这些值可能会被验证跟踪器存储的值覆盖,以防重新设置。检测到验证错误后显示页面。
关于java - 如何在 DateField 中设置默认日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083657/