2016-11-15 18 views
0

従来の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} 

    }); 

}]); 
+0

どのように応答をjson形式で返しましたか? –

+0

私は元の質問を編集しました。 – Daniel

+0

下記の答え。 –

答えて

0

Noteオブジェクトので、あなたがエラーを得ました拡張ActionForm。したがって、直列化すべきでないプロパティを継承しています。 Noteクラスの依存関係を削除するだけです

public class Note { 

//setter and getter... 
}