Я пытаюсь посмотреть, как много будет работать, если мы перенесем наше устаревшее веб-приложение 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}
});
}]);
Как вы ответили в json формате? –
Я только что редактировал мой оригинальный вопрос. – Daniel
Ответ ниже. –