Como o Struts2 ValueStack cuida de vários pedidos?

CompreendoValueStack foi introduzido no Struts2 e mais uma mudança do modelo Struts1 é agora um novoActionObject é instanciado para cada solicitação. Assim, podemos definir variáveis ​​de instância sem se preocupar com problemas de multitarefa. A maneira como os interceptores e JSPs acessam as variáveis ​​de instância doActionObjects é através doValueStack. Mas o caminhoValueStack é implementado (ou pelo menos usado pelo framework Struts2) é porValueStack. para facilitar o acesso, para que não precisemos percorrer toda a árvore de objetos. Eu tenho as seguintes perguntas.

E se eu tiver objetos incorporados (hierarquia múltipla de objetos)? como o mecanismo de acesso se comporta nesse caso?

Se dissermos que 2 clientes fizeram pedidos para a mesma atuação ao mesmo tempo e o resultado da execução da Ação é diferente porque os insumos fornecidos por 2 clientes retornaram com 2 resultados diferentes. Digamos que minha classe de ação tenha um método para obter o melhor preço e, com base na lógica do serviço de back-end, os resultados são 10 e 12 para duas solicitações diferentes. AgoraActionClass tem uma variável de membro chamada preço na qual esse valor será armazenado e o JSP resultanteshowResults.jsp acessará essa variável (usando uma tag lib) para mostrar o preço. Como o framework struts2 garante que o client1 e o client2 obtenham a resposta correta de volta e os preços não sejam misturados enquanto a resposta é mostrada na JSP porque pelo que entendi oValueStack apenas entra em primeiro na primeira saída (lógica da pilha). Assim, pode acabar retornando 10 para ambas as solicitações do cliente, pois a mesma variável é armazenada duas vezes (com o mesmo nome) na pilha de valores, mas com valores diferentes.

Quando é que oValueStack destruir o objeto da sua lista?

questionAnswers(1)

yourAnswerToTheQuestion