Como armazenar uma lista de objetos em uma sessão em um aplicativo da web springMVC

Chris

Gostaria de armazenar uma lista em uma sessão para poder acessá-la e adicionar / remover / excluir objetos em um controlador separado mediante solicitação. Atualmente, tenho um controlador que está criando uma lista e enviando-a para um JSON, que estou acessando de uma página jsp usando AngularJS.

Tentei usar @SessionAttributesadicionando a lista a um modelo, mas a lista não foi armazenada corretamente. Eu sou bastante novo no SpringMVC, então qualquer sugestão / conselho sobre onde procurar seria bem-vinda.

Meu controlador criando minha lista:

@RestController
@SessionAttributes({"URLparam", "usersList"})
public class ReportController {

  @RequestMapping(value="/events")
  public List<Appliance> getEvents(@ModelAttribute("URLparam")String userInput, ModelMap model){
    List<Appliance> events = new ArrayList<>();
    events = ProcessChoice.ofList(userInput);
    model.addAttribute("usersList", events);
    System.out.println(userInput);
    return events;
  }
}

Meu controlador que desejo editar a lista existente:

@Controller
@SessionAttributes("usersList")
public class EditListController {

  @RequestMapping(value="/testing", method=RequestMethod.GET)
  public String makeChanges(@RequestAttribute("usersList") List<Appliance> usersList) {
    //make changes to list here
    for(Appliance p: usersList) {
        System.out.println(p.getName());
    }
    return "testing";
  }
}

Da forma como está, o código apresenta: error 400 - Missing request attribute 'usersList' of type List

Posso ver que há uma opção para adicionar uma coleção <> ao modelo, mas não tenho certeza de como armazená-la, pois não me permite dar um nome.

bitrecycling

Em seu ReportController você está armazenando a lista ("eventos") para o modelo sob a chave "usersList". O modelo atua como dados que podem ser renderizados na visualização. Dessa forma, ele não é armazenado na Sessão.

Considere algo como: session.setAttribute ("usersList", eventos); no ReportController e o correspondente session.getAttribute ("usersList") no EditListController.

Você também pode omitir a anotação @ SessionAttributes se fizer isso desta forma. Se quiser usar essas anotações, familiarize-se com seu escopo (onde colocá-las e onde usá-las) e uso aqui: http://vmustafayev4en.blogspot.de/2012/10/power-of-springs-modelattribute- and.html e api doc oficial aqui: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/SessionAttributes.html e

No entanto, armazenar dados na sessão pode parecer uma boa ideia, mas geralmente é a razão para o grande consumo de memória do aplicativo se houver muitas sessões ativas - só para você saber.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como armazenar uma resposta em um aplicativo da web no golang?

Como obtenho uma lista de todos os objetos HttpSession em um aplicativo Web?

Armazenar em cache o resultado de um Mono de uma chamada WebClient em um aplicativo da web Spring WebFlux

Como armazenar vários objetos em uma sessão, um por um, por solicitação?

enviar nulo para uma lista de objetos em um serviço da web

Como armazenar um valor em uma sessão?

Como abrir uma página da web clicando em um botão dentro de um aplicativo?

Como armazenar a saída em uma lista de matrizes

Como armazenar dados em tempo real de um websocket em uma página da web?

Como converter uma lista de objetos em uma lista simples, selecionando um único atributo da lista de objetos?

Como armazenar palavras lidas de um arquivo em uma lista

Como armazenar uma lista de pontos em um arquivo XML

Como armazenar uma lista de pontos em um arquivo XML

Como faço para incorporar uma quebra de linha em um aplicativo da web? (HTML, CSS)

Como instalar e iniciar o servidor CouchDB em uma imagem Docker de um aplicativo da Web?

Como armazenar os resultados da regressão do loop "for" em uma lista com um nome exclusivo?

Como faço para armazenar dados de um formulário em uma sessão do Codeigniter?

Armazenar valores em cache de uma função como um atributo da função em Python

como armazenar todas as configurações do Windows de uma sessão tmux em um arquivo

O aplicativo da web envia valores de uma lista para uma função em Java Script

Não consigo armazenar uma seqüência de caracteres em um nó da lista vinculada

Como adiciono um novo valor a uma Planilha Google a partir de um campo de texto em um aplicativo da web e, em seguida, atualizo automaticamente a lista suspensa associada?

Python: como iterar por meio de um intervalo de colunas em um dataframe, verificar valores específicos e armazenar o nome da coluna em uma lista

Como armazenar um objeto de caixa de seleção em uma lista?

Como lidar com a solicitação "post" em node.js em um aplicativo da web de uma página

como armazenar a saída impressa de uma função como um vetor em R?

Como armazenar dados de saída de uma função em um arquivo de texto

Como detectar uma sessão de usuário expirada em um aplicativo de reação?

Como armazenar uma lista em um mapa em c ++?