2016-06-14 15 views
1

JSON応答(jax-rs)を送信しようとしています。 JSONには日付値が含まれています。しかし、html形式の値属性としてdateをangle ng-modelで渡すのは困っています。ここ は私のクライアント側のJavaメソッドJax-rs Angularjsへの応答

@POST 
@Path("/selectedjob") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces (MediaType.APPLICATION_JSON) 
public Response getSelectedJob(JSONArray selected){ 
    EntityManager em = emf.createEntityManager(); 
    Job j = em.find(Job.class, Long.parseLong(String.valueOf(selected.get(0)))); 
    return Response.status(200).entity(j).build(); 
} 

JSONで

{"date":"2012-02-02","invoiced":false,"destination":"lskdjf","invoiceNumber":null,"vehicleRegno":"djksladfi","product":"lskdjf","loadedFrom":"slkjf","rate":45,"amount":345646,"deliveryNo":null,"qtyLoaded":12,"id":22} 

は、今私は(他のすべてを除いて作業している、このデータは、以下のHTMLフォームでデフォルト値として表示しますさ私もTHIが付属している日付)

<form role="form" ng-submit="editJob()"> 
    <div class="box-body"> 
    <div class="col-xs-5"> 
     <label for="Date"> Date</label> 
     <input type="date" class="form-control" ng-model="job.date"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="vehicle">Vehicle</label> 
     <input type="text" class="form-control" ng-model="job.vehicleRegno"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Loaded">Loaded From</label> 
     <input type="text" class="form-control" ng-model="job.loadedFrom"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Destination">Destination</label> 
     <input type="text" class="form-control" ng-model="job.destination"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Product">Product</label> 
     <input type="text" class="form-control" ng-model="job.product"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Quantity">Quantity Loaded</label> 
     <input type="text" class="form-control" ng-model="job.qtyLoaded"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Rate">Rate</label> 
     <input type="text" class="form-control" ng-model="job.rate"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Amount">Amount</label> 
     <input type="text" class="form-control" ng-model="job.amount"> 
    </div> 
    <div class="col-xs-5"> 
     <label for="Delivery">Delivery Note Number</label> 
     <input type="text" class="form-control" ng-model="job.deliveryNo"> 
    </div> 
    </div> 
    <!-- /.box-body --> 

    <div class="box-footer"> 
    <button type="submit" class="btn btn-primary" value="submit" ng-click="showdetails(true)">Submit</button> 
    </div> 
</form> 

おかげ..

答えて

0

sの問題、まず、あなたが

DateAdapter.java

public class DateAdapter extends XmlAdapter<String, Date> { 

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat(
    "yyyy-MM-dd"); 

    @Override 
    public String marshal(Date date) { 
     return dateFormat.format(date); 
    } 

    @Override 
    public Date unmarshal(String dateStr) { 
     try { 
      return dateFormat.parse(dateStr); 
     } catch (ParseException e) { 
      throw new WebApplicationException(); 
     } 
    } 
} 

を使用してこの日付をフォーマットする必要があります。そして、あなたはこのようなあなたのJobクラスDateプロパティにDateAdapterクラスをインポートすることができます。

Job.java 

{ 

... 
    @XmlJavaTypeAdapter(DateAdapter.class) 
    private Date date; 

... 

} 

は、それが動作ホープ!

+0

それはあなたを助けますか? –

関連する問題