我的 Xpages 中有两个日期时间组件,我需要在提交之前比较两个日期,以便使用表达式验证功能:
<xp:inputText value="#{document1.FUP_creation}"
id="FUP_creation" required="true">
<xp:this.validators>
<xp:validateRequired
message="Date is required">
</xp:validateRequired>
</xp:this.validators>
<xp:dateTimeHelper id="dateTimeHelper3">
</xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="date"
dateStyle="short">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
<xp:inputText value="#{document1.FUP_expireDate}"
id="FUP_expiredDate" required="true">
<xp:this.validators>
<xp:validateRequired
message="Date is required">
</xp:validateRequired>
<xp:validateExpression
message="The expired date must be greater than creation date">
<xp:this.expression><![CDATA[#{javascript://_dump("creation date")
_dump(this.getValue())
_dump(this.getSubmittedValue())
var exp_date:java.util.Date=this.getValue();
var fup_creation:java.util.Date=getComponent("FUP_creation").getValue();
if (exp_date.compareTo(fup_creation)>=0) return true
else return false}]]></xp:this.expression>
</xp:validateExpression>
</xp:this.validators>
<xp:dateTimeHelper></xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="date"
dateStyle="short">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
正确的值始终是 getSubmittedValue()..但返回到 java.lang.String 模式而不是 java.util.Date。
现在可以使用 java.text.SimpleDateFormat 将我提交的值转换为 java.util.Date ......但这是一个正确的解决方案吗?