繁体   English   中英

Jax-rs对Angularjs的回应

[英]Jax-rs Response to Angularjs

我正在尝试发送JSON响应(jax-rs)。 JSON中包含日期值。 但是,我很难通过角度ng-model将日期作为html表单中的value属性传递。 这是java方法

@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表单中显示为默认值,(所有其他数据除日期外都有效)

<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>

谢谢..

我也遇到过这个问题,首先,你应该使用格式化这个日期

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();
        }
    }
}

然后,您可以将DateAdapter类导入Job类Date属性,如下所示:

Job.java

{

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

...

}

希望它有效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM