[英]Post json file to my REST service in java
我正在嘗試從Angular js表單中發布數據,以使用Java的REST服務將其保存到數據庫。 下面是我剩下的代碼
@Stateless
@Path("driverprops")
public class DriverPropFacadeREST extends AbstractFacade<DriverProp> {
@PersistenceContext(unitName = "com.mycompany_groupProjectBackend_war_1.0-SNAPSHOTPU")
private EntityManager em;
public DriverPropFacadeREST() {
super(DriverProp.class);
}
@POST
@Override
@Consumes({ "application/json"})
public void create(DriverProp entity) {
super.create(entity);
}
她的是我的driverprop班的一部分
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "DriverProp")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "DriverProp.findAll", query = "SELECT d FROM `DriverProp d"),
@NamedQuery(name = "DriverProp.findByDriverID", query = "SELECT d FROM DriverProp d WHERE d.driverID = :driverID"),
@NamedQuery(name = "DriverProp.findByGear", query = "SELECT d FROM DriverProp d WHERE d.gear = :gear"),
@NamedQuery(name = "DriverProp.findByChangeUpRPM", query = "SELECT d FROM DriverProp d WHERE d.changeUpRPM = :changeUpRPM"),
@NamedQuery(name = "DriverProp.findByChangeDownRPM", query = "SELECT d FROM DriverProp d WHERE d.changeDownRPM = :changeDownRPM"),
@NamedQuery(name = "DriverProp.findByPreferredMaxRPM", query = "SELECT d FROM DriverProp d WHERE d.preferredMaxRPM = :preferredMaxRPM"),
@NamedQuery(name = "DriverProp.findByPreferredMinRPM", query = "SELECT d FROM DriverProp d WHERE d.preferredMinRPM = :preferredMinRPM"),
@NamedQuery(name = "DriverProp.findByDecisionTime", query = "SELECT d FROM DriverProp d WHERE d.decisionTime = :decisionTime"),
@NamedQuery(name = "DriverProp.findByMaxAccn", query = "SELECT d FROM DriverProp d WHERE d.maxAccn = :maxAccn"),
@NamedQuery(name = "DriverProp.findByMaxBreaking", query = "SELECT d FROM DriverProp d WHERE d.maxBreaking = :maxBreaking"),
@NamedQuery(name = "DriverProp.findByMaxStraightSpeed", query = "SELECT d FROM DriverProp d WHERE d.maxStraightSpeed = :maxStraightSpeed"),
@NamedQuery(name = "DriverProp.findByMaxCornerSpeed", query = "SELECT d FROM DriverProp d WHERE d.maxCornerSpeed = :maxCornerSpeed")})
public class DriverProp implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "DriverID")
private Integer driverID;
@Basic(optional = false)
@NotNull
@Column(name = "Gear")
private int gear;
@Basic(optional = false)
@NotNull
@Column(name = "ChangeUpRPM")
private float changeUpRPM;
@Basic(optional = false)
@NotNull
@Column(name = "ChangeDownRPM")
private float changeDownRPM;
@Basic(optional = false)
@NotNull
@Column(name = "PreferredMaxRPM")
private float preferredMaxRPM;
@Basic(optional = false)
@NotNull
@Column(name = "PreferredMinRPM")
private float preferredMinRPM;
@Basic(optional = false)
@NotNull
@Column(name = "DecisionTime")
我的問題現在我需要一個有角度的js,它將發送JSON文件,並且應該使用REST服務將JSON保存到數據庫。
您可以使用
有一陣子我使用矩形,效果很好。
Witrh Angular,最簡單的方法是使用$resource
。 在您的情況下,將是這樣的:
var app = (...)
app.factory('DriverPropFacadeREST', function($resource) {
return $resource('http://(...)/driverprops/:id', {id:'@id'});
});
app.controller('DriverPropController', function($scope, DriverPropFacadeREST) {
var inputData = { 'driverID': 'value', (...) };
DriverPropFacadeREST.save(inputData, function(data) {
console.log(data);
(...)
});
});
有關更多詳細信息,請參見Angular參考文檔中的此鏈接: https : //docs.angularjs.org/api/ngResource/service/ $ resource。
您還可以使用低級API $http
,如下所述:
app.controller('DriverPropController', function($scope, $http) {
var inputData = { 'driverID': 'value', (...) };
$http.post('http://(...)/driverprops', inputData)
.success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
})
.error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
});
有關更多詳細信息,請參見Angular參考文檔中的此鏈接: https : //docs.angularjs.org/api/ng/service/ $ http#post。
希望對您有幫助,蒂埃里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.