従来のStruts 1.x WebアプリケーションをAngularJS + Java RESTful Webサービスに移行する場合、どのくらいの作業が必要になるか見ていきたいと考えています。 (Struts 1.xはAngularJSにうまく収まらないことが分かります)Struts1のJSONレスポンスActionForm
最初に気がついたのは、Struts ActionForm
が非常に多く、JSONで簡単に応答できるかどうか疑問に思っていたことですフォーマット。だから我々はこのように多くのクラスがあります。
public class Note extends org.apache.struts.action.ActionForm{
//setter and getter...
}
私も、ヘルパー、ユーティリティクラスをPOJOのスタイルクラスにこれを変換しようとしましたが、その後、あまり他の変更はDAOのために必要とされます。これは何か必然?または、Struts 2に最初に移行してAngularJSを採用しようとする方が良いでしょうか?
org.codehaus.jackson.map.JsonMappingException::私は応答を取得しようとしたとき
はところで、私は、Eclipseのコンソールでこのエラーを取得していないクラスorg.apache.struts.actionが見つかりませシリアライザを.ActionServletWrapper及び(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANSを無効にする、例外を回避するため)のBeanSerializerを作成する発見ない特性)(参照チェーンを介し:org.kki.dao.oracle.ads.TranscribedNote [ "servletWrapper"])
アップデート:
@Path("/note")
public class NoteRestService {
@Context
private HttpServletRequest request;
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Note [] getNote() {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
NoteDAO noteDao = new NoteDAO(null);
Note[] note = noteDao.selectNote(user.getUserId());
return note;
}
}
=========
myApp.controller('noteCtrl', ['$scope', 'Note',
function ($scope, Note) {
var vm = this;
$scope.noteLists = Note.query(function(){
vm.noteList = $scope.noteLists;
});
================
myApp.factory('Note', ['$resource',
function($resource) {
return $resource('http://localhost:8080/angular_demo/rest/note/:id', {id: '@id'}, {
get: {method: 'GET', cache: false, isArray: false}
});
}]);
どのように応答をjson形式で返しましたか? –
私は元の質問を編集しました。 – Daniel
下記の答え。 –