2011-12-07 15 views
0

フォーム提出中にコード内で/ ajaxformloopが新しく追加された行結果をコピーするときに指摘できますか? 次のコード例を参照しています - http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/formloop1AjaxFormLoopがサブミット後に新しく作成されたフォーム要素の値を入力しない

私は同様のコードをしましたが、onSuccess()メソッドはフォーム送信後に呼び出され、私の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; 
     } 
    }; 
} 

次、私はで保管し、新しく作成された行の値にアクセスすることはできません上記のtoValue()方法における。

これに関するお手伝いをお待ちしております。

答えて

0

toClientであなたの比較が間違っている:あなたは新しいプロモーションをインスタンス化するとき、それは

if (promo.getId() == 0){ return NEW_PROMOTION; } 

IDがゼロで最も可能性が高いではないですが、NULL。 ジャンプスタートValueEncoderはこのようにそれをやっている:

return id == null ? NEW_PERSON : id.toString(); 

のでごtoValueの方法はあまりにも:)

を失敗しました
関連する問題