Struts не передает параметр в файл jsp

У меня есть действие, которое (в зависимости от результата) перенаправляет на подходящий файл:

<!-- /web/addaccount -->
<action name="addaccount" class="com.x.y.z.WebCreateAccountAction">      
  <result name="INVALIDLOGIN">/delete/confirm.jsp?err=SIGNIN</result>
  <result name="ERROR">/delete/error.html</result>
</action>

Почему-то при перенаправлении на delete/confirm.jsp не передается параметр err. Я в недоумении, почему так происходит. Является ли это неправильным способом передачи параметров в JSP через Struts?


person Siddhartha    schedule 13.09.2016    source источник
comment
stackoverflow.com/ вопросы/8769195/   -  person Roman C    schedule 15.09.2016


Ответы (1)


Просто не хватало:

type="redirect"

<result name="INVALIDLOGIN" type="redirect">/delete/confirm.jsp?err=SIGNIN</result>

Примечание. Этого делать не рекомендуется, так как это приведет к прямому перенаправлению на JSP, что будет считаться анти-шаблоном S2. Смотрите комментарии ниже.

person Siddhartha    schedule 13.09.2016
comment
Это будет означать, что вы перенаправляетесь непосредственно на JSP, что будет считаться анти-шаблоном S2. - person Dave Newton; 14.09.2016
comment
Ах интересно. @DaveNewton tutorialspoint.com/struts_2/struts_redirect_action.htm предлагает использовать перенаправление напрямую на JSP . Это уже устарело? - person Siddhartha; 14.09.2016
comment
@Siddhartha никогда не было хорошей практикой смешивать прямые JSP с ориентированной на действия структурой; все запросы должны пройти действие. Это относится ко всем технологиям (например, приложения Struts 1 также не должны использовать прямой доступ к JSP). Единственными возможными исключениями могут быть целевые страницы, которые будут перенаправлять на действие, или, возможно, страницы входа, которые взаимодействуют с чем-то на более низком уровне. Это не правило, которое соблюдается фреймворком — это просто соглашение. - person Dave Newton; 15.09.2016
comment
@Siddhartha Этот учебник, вероятно, довольно старый, поскольку сам S2 больше не защищает конкретную методологию Ajax, за исключением того, что он осуждает свой собственный (старый) плагин на основе Dojo и имеет относительно хорошо поддерживаемый плагин jQuery, который не является частью официального проект С2. - person Dave Newton; 15.09.2016
comment
@DaveNewton Спасибо за совет. Изменил ответ, чтобы не вводить в заблуждение тех, кто приходит. - person Siddhartha; 15.09.2016