有人可以在表单提交过程中指出代码中的/ where,ajaxformloop复制新添加的行结果 我指的是以下示例代码 - http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/formloop1
我有一个类似的代码,以下是我的ValueEncoder
@Log
public ValueEncoder<Promotion> getPromotionEncoder() {
return new ValueEncoder<Promotion>() {
@Log
public String toClient(Promotion promo) {
log.debug("toClient id="+promo.getId());
if (promo.getId() == 0)
{
return NEW_PROMOTION;
}
return new Long(promo.getId()).toString();
}
@Log
public Promotion toValue(String id) {
log.debug("toValue id="+id);
Promotion promotion = null;
if (id.equals(NEW_PROMOTION))
{
promotion = new Promotion();
newPromotions.add(promotion);
}
else
{
promotion = crudService.findUniqueWithNamedQuery(Promotion.BY_ID,
QueryParameters.with("id", new Long(id).longValue()).parameters());
}
return promotion == null? new Promotion(): promotion;
}
};
}
在表单提交后调用onSuccess()
方法时,我无法访问上面newPromotions
方法中toValue()
存储在{{1}}中的新创建的行的值。
感谢您的任何帮助。
答案 0 :(得分:0)
您在toClient中的比较是错误的:
if (promo.getId() == 0){ return NEW_PROMOTION; }
当您实例化一个新的促销时,它的ID很可能不是零,而是NULL。 Jumpstart ValueEncoder就是这样做的:
return id == null ? NEW_PERSON : id.toString();
因此你的toValue方法也失败了:)