AngularJS、JAX-RS、およびHibernateを使用して小さなWebアプリケーションを作成しました。私は私のタイプ 'Plugin'のオブジェクトを取得して保存しようとしています。取得はうまくいくが保存はしない。私はサーバー上のオブジェクトを見ると、初期化されますが、オブジェクト全体のjson文字列に設定されたString型のtitleプロパティには、すべてのプロパティがnullになります。
{"id":"22a7533fb6-...", "title":"My Plugin"}
AngularJS:
function save(plugin) {
return $resource('rest/plugins/save', { plugin: plugin }, {
save : {
method : 'PUT',
isArray : false
}
});
}
JAX-RS
@PUT
@Path("save")
@Consumes(MediaType.APPLICATION_JSON)
public void savePlugin(@Context HttpServletRequest req, @QueryParam("plugin") Plugin plugin) throws IOException {
log.debug("plugin..." + plugin.getTitle());
}
プラグイン
@Entity
@Table(name = "plugin")
public class Plugin {
@Id
@Column(name = "id", unique = true, length = 36, nullable = false)
private String id;
@Column(name = "title", unique = true, length = 255, nullable = false)
private String title;
// getters and setters without any annotations...
}
JavaScriptでのプラグインの変数を見ると、それは完全なオブジェクトです。そして、要求は任意のヘルプ
Request URL:/rest/plugins/save?plugin=%7B%22id%22:%22a7533fb6-d36f-459b-b9e7-bb64cdaae1e3%22,%22title%22:%22My+Plugin%22%7D
おかげで、コピリクエストのパラメータとしてペイロードとしてではなく、データを送信するためにティップのためのカッシオのソリューション おかげカシオ後
UPDATEです。私はあなたが言ったようにJAX-RSの部分を変更します。さらに、コントローラと私のサービスを角度で変更しなければなりませんでした。
サービス:
services.factory('PluginService', [ '$resource', function($resource) {
return $resource('rest/plugins/:id', null, {
'update' : { method : 'PUT' }
});
} ]);
コントローラー:
controllers.controller('PluginController', [
'$scope',
'PluginService',
function($scope, PluginService) {
$scope.save = function(plugin) {
PluginService.update({id:plugin.id}, plugin, function(data) {
console.log("Plugin saved.");
}, function(err) {
console.log("Error while saving Plugin.");
});
}
}]);
ありがとう、私はいくつかの間違いがあった。 JAX-RSでAngularのペイロードとして送信し、あなたが言ったようにJAX-RSで受信するので、動作します。私はAngular ControllerとServiceにいくつかの変更を加えなければなりませんでした。 –
@kopi_b私の答えをUpvoting私の劣等感を軽減するのに役立ちます:) –
あなたは行く:) –