2010-12-08 2 views
1

У меня есть перехватчик, который должен прервать действие и перенаправить на новую страницу. В настоящее время он возвращает строку типа «go_to_foo». Это нормально работает, но я также хочу отправить дополнительный параметр в действие. Я пытался настроить этот результат в struts.xml как:В struts2 как перенаправить на jsp с дополнительными параметрами

<global-results> 
      ... 
      <result name="go_to_foo"> 
       <param name="location">foo.jsp</param> 
       <param name="testing">mark</param> 
      </result> 
</global-results> 

я получаю следующее исключение: Caught OgnlException при установке свойства «тестирования» от типа «org.apache.struts2.dispatcher.ServletDispatcherResult» , Мне интересно, связано ли это с тем, что объект Request не знает о каком-либо параметре «тестирования».

Кроме того, мне также интересно, можно ли перехватчику добавить/изменить параметры запроса, прежде чем возвращать строку «go_to_foo», чтобы они все еще были доступны в foo.jsp. Если что-то подобное возможно, возможно, мне не нужно то, что выше.

Я надеюсь, что было достаточно ясно.

Спасибо, Марк

+0

btw, я выполнил следующие инструкции: http://struts.apache.org/2.0.11.1/docs/redirect-result.html – mveerman 2010-12-08 16:19:05

ответ

2

Тег <param/> предназначен для установки параметров результата, а не для добавления параметров строки запроса в перенаправление.

например, <param name="testing">mark</param> пытается вызвать setTesting("mark") в классе ServletRedirectResult. Такого метода нет.

Try: <param name="location">foo.jsp?testing=mark</param>

Кроме того, вам действительно нужно перенаправить? Почему бы просто не добавить необходимый параметр в контекст действия и продолжить?

3

Вы забыли type=redirect атрибут

<result name="go_to_foo" type="redirect"> 
    <param name="location">foo.jsp</param> 
    <param name="testing">mark</param> 
</result> 

для доступа к использованию значения

<s:property value="#parameters.testing" /> 

или

${parameters.testing[0]} 
+0

Хороший улов, к сожалению, я все еще получаю то же исключение. – mveerman 2010-12-09 18:53:46

+0

К сожалению, это не работает для меня. На карте `parameters` нет то, что я установил в результате. Любая идея, что может пойти не так? Я использую `defaultStack` – 2014-03-10 10:50:27

Смежные вопросы