2016-11-15 6 views
0

Я пытаюсь посмотреть, как много будет работать, если мы перенесем наше устаревшее веб-приложение Struts 1.x в веб-службу AngularJS + Java RESTful. (Я знаю, что Struts 1.x не подходит хорошо с AngularJS.)Ответ JSON для Struts1 ActionForm

Первое, что я замечаю, это то, что существует так много Struts ActionForm, и мне было интересно, есть ли более простой способ получить ответ в JSON формат. Таким образом, у нас есть класс как это много:

public class Note extends org.apache.struts.action.ActionForm{ 

//setter and getter... 
} 

Я попытался преобразовать это класс стиля POJO, а затем столько других изменений необходимы для DAO, помощника, полезных классов. Это что-то неизбежное? Или лучше сначала перейти на Struts 2, а затем попытаться принять AngularJS?

Кстати, я получаю эту ошибку в консоли Eclipse, когда я пытался получить ответ:

org.codehaus.jackson.map.JsonMappingException: Нет сериалайзер найденный для класса org.apache.struts.action .ActionServletWrapper и никаких свойств, обнаруженные для создания BeanSerializer (чтобы избежать исключений, отключить SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) (через эталонную цепь: 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... 
} 
Смежные вопросы