我在XPage上使用Dojo时间文本框。当我在此字段中保存时间时,显示的时间具有“T”前缀。有没有办法删除这个“T”?这是我的代码:
<xp:inputText id="EventEndTime" value="#{document1.EventEndTime}" style="width:160px;"
role="button" title="used to pick a meeting time" required="true"
dojoType="dijit.form.TimeTextBox"
disableClientSideValidation="true">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="required" value="false">
</xp:dojoAttribute>
</xp:this.dojoAttributes>
</xp:inputText>
答案 0 :(得分:3)
您可以在inputText控件中添加自定义转换器,在保存之前删除“T”并在渲染页面中添加“T”:
<xp:this.converter>
<xp:customConverter>
<xp:this.getAsObject><![CDATA[#{javascript:value.substring(1)}]]></xp:this.getAsObject>
<xp:this.getAsString><![CDATA[#{javascript:"T" + value}]]></xp:this.getAsString>
</xp:customConverter>
</xp:this.converter>
这样时间就像“hh:mm:ss”而不是“Thh:mm:ss”一样保存为字符串。
您也可以使用自定义转换器将值保存为Notes时间值。
答案 1 :(得分:3)
Domino实际上并不存储“仅限时间”,因此您可能希望首先使用viewScope变量绑定到TimeTextBox,并使用加载和保存事件来写入/读取。我会使用SimpleDateFormat类进行转换,这比手动字符串操作更舒服。实际上,一个小的Java助手类在这里创造奇迹。
或者你可以使用过滤器来清理它。