我正在寻找在验证邮件中使用属性名称的正确方法,例如{min}
或{regexp}
。
我现在已经搜索了几次这个问题,显然没有一种本地方法可以做到这一点。
@NotNull(message = "The property {propertyName} may not be null.")
private String property;
以前有没有人经历过这个并且已经设法找到解决方案?
更新1
使用自定义消息插补器应该是这样的:
public class CustomMessageInterpolator implements MessageInterpolator {
@Override
public String interpolate(String templateString, Context cntxt) {
return templateString.replace("{propertyName}", getPropertyName(cntxt));
}
@Override
public String interpolate(String templateString, Context cntxt, Locale locale) {
return templateString.replace("{propertyName}", getPropertyName(cntxt));
}
private String getPropertyName(Context cntxt) {
//TODO:
return "";
}
}
答案 0 :(得分:3)
一种解决方案是使用两条消息并将属性名称夹在它们之间:
error.notblank.part1of2=The following field must be supplied: '
error.notblank.part2of2='. Correct and resubmit.
然后在您的消息资源文件中:
$query = "INSERT INTO [competitionTrade]
([fullName]
,[date]
,[limitOrder]
,[quantity]
,[tickerSymbol]
,[limitPrice]
,[contingentOrder]
,[contingentQuantity]
,[contingentLimitPrice])
VALUES
($fullName,
$date,
$limitOrder,
$quantity,
$ticSymbol,
$limitPrice,
$contingentOrder,
$contingentQuantity,
$contingentLimitPrice";
验证失败时,它会生成消息"必须提供以下字段:'地址行1'。正确并重新提交。"