Проблема: перенаправление действий не включает параметр как сложные объекты в Struts2? - PullRequest
0 голосов
/ 24 мая 2011

Я пробовал пример, в котором я вставил пользователя, используя метод вставки класса UserAction.

При вставке я перенаправил успех на метод loadAdd UserAction.

Во время перенаправления Iпередал параметр как

$ {пользователь}

В стойках 2.0.14 это дает исключение ognl.

, тогда как когда я передаю

$ {user.id}

это работает.

Мое наблюдение говорит, что это ошибка в Struts или Ognl, что он анализирует составные объекты, в то время как он анализирует простые типы данных.Обходной путь, пожалуйста, предложите.

Или

Есть ли способ, которым я могу переслать весь контекст действия или стек значений в перенаправленном действии

1 Ответ

2 голосов
/ 24 мая 2011

Это не ошибка.

Struts2 использует систему преобразования типов для преобразования между строками (собственный HTTP) и другими объектами.Он имеет конвертеры типов по умолчанию для всех стандартных примитивов, штучных примитивов, коллекций, карт и т. Д. Если вы хотите, чтобы Struts2 автоматически конвертировал строку и ваш класс User, вам нужно создать конвертер типа для него.В противном случае вы можете использовать $ {user.id}, который является примитивом или примитивом в штучной упаковке.

http://struts.apache.org/2.2.3/docs/type-conversion.html

Кроме того, ValueStack для каждого запроса, поэтому при перенаправлении и созданииновый запрос, предыдущие запросы ValueStack больше не доступны.

...