Я понимаю, что ValueStack был представлен в Struts 2, и еще одно изменение по сравнению с моделью Struts 1: теперь для каждого запроса создается новый объект Action. Таким образом, мы можем определять переменные экземпляра, не беспокоясь о проблемах многопоточности.
Перехватчики и JSP получают доступ к переменным экземпляра объектов Action через ValueStack >. Но есть ли способ реализовать ValueStack (или, по крайней мере, использовать его в платформе Struts 2) с помощью ValueStack., чтобы упростить доступ и чтобы нам не требовалось обойти все дерево объектов?
У меня есть следующие вопросы:
Что делать, если у меня есть встроенные объекты (множественная иерархия объектов)? Как в таком случае поведет себя механизм доступа?
Если, скажем, 2 клиента одновременно сделали запросы на одно и то же действие, и результаты выполнения Action различаются, поскольку входные данные, предоставленные двумя клиентами, вернулись с двумя разными результатами. Допустим, в моем классе Action есть метод получения лучшей цены, и, исходя из логики моей серверной службы, результаты получаются как 10 и 12 для двух разных запросов. Теперь класс Action имеет переменную-член, называемую ценой, в которой это значение будет храниться, и результирующий JSP showResults.jsp будет обращаться к этой переменной (с помощью библиотеки тегов), чтобы показать цену. Как платформа Struts 2 гарантирует, что Клиент 1 и Клиент 2 получат правильный ответ, и цены не будут перепутаны, в то время как ответ отображается в JSP, потому что, насколько я понимаю, ValueStack просто идет первым в мода «первым выходом» (стековая логика). Таким образом, возможно, в конечном итоге оба клиентских запроса вернут 10, поскольку одна и та же переменная сохраняется дважды (с одним и тем же именем) в стеке значений, но с разными значениями.
Я понимаю, что ValueStack был представлен в Struts 2, и еще одно изменение по сравнению с моделью Struts 1: теперь для каждого запроса создается новый объект Action. Таким образом, мы можем определять переменные экземпляра, не беспокоясь о проблемах многопоточности. Перехватчики и JSP получают доступ к переменным экземпляра объектов Action через ValueStack >. Но есть ли способ реализовать ValueStack (или, по крайней мере, использовать его в платформе Struts 2) с помощью ValueStack., чтобы упростить доступ и чтобы нам не требовалось обойти все дерево объектов? У меня есть следующие вопросы: [list] [*]Что делать, если у меня есть встроенные объекты (множественная иерархия объектов)? Как в таком случае поведет себя механизм доступа?
[*]Если, скажем, 2 клиента одновременно сделали запросы на одно и то же действие, и результаты выполнения Action различаются, поскольку входные данные, предоставленные двумя клиентами, вернулись с двумя разными результатами. Допустим, в моем классе Action есть метод получения лучшей цены, и, исходя из логики моей серверной службы, результаты получаются как 10 и 12 для двух разных запросов. Теперь класс Action имеет переменную-член, называемую ценой, в которой это значение будет храниться, и результирующий JSP showResults.jsp будет обращаться к этой переменной (с помощью библиотеки тегов), чтобы показать цену. Как платформа Struts 2 гарантирует, что Клиент 1 и Клиент 2 получат правильный ответ, и цены не будут перепутаны, в то время как ответ отображается в JSP, потому что, насколько я понимаю, ValueStack просто идет первым в мода «первым выходом» (стековая логика). Таким образом, возможно, в конечном итоге оба клиентских запроса вернут 10, поскольку одна и та же переменная сохраняется дважды (с одним и тем же именем) в стеке значений, но с разными значениями.
[*]Когда ValueStack удаляет объект из своего списка?
У меня есть две страницы JSP, отображающие два списка из двух разных действий: страница A отображает список сотрудников, страница B отображает список отделов.
Обе страницы имеют общее текстовое поле (включенное в третью страницу JSP) вверху для...
Это мой код ниже: при выполнении он показывает размер 3, но когда я извлекаю объект, я получаю только 2 объекта.
import java.util.*;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.ActionContext;
import...
Это мой код ниже: при его выполнении он показывает мне размер 3, но когда я извлекаю объект, я получаю только 2 объекта.
import java.util.*;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.ActionContext;
import...
Я планирую перейти на Struts 2 с базой кода Struts 1. У меня нет хорошего источника для продолжения этой миграции. Не могли бы вы помочь с этим подходом?