Тег действия не выполняется в Struts 2

У меня проблема с вызовом действий из моих страниц JSP с тегом в Struts2. У меня есть файл login.jsp:

<s:action name="headerMenu" executeResult="true" namespace="/menu"</s:action>
<s:form action="executeLogin">
    <s:textfield name="username" label="Username"></s:textfield>
    <s:password name="password" label="Password"></s:password>
    <s:submit></s:submit>
</s:form>

Действие headerMenu отображает результат в header.jsp:

<div id="menu">
    <s:iterator value="menus">
        <s:property escape="false" value="'<a href=\"'+path+'\" title=\"'+description+'\">'+title+'</a>'"/>
    </s:iterator>
</div>

Этот jsp-файл отображает меню, полученное из LinkedList (именованные меню) в классе Action действия headerMenu.

При доступе к "login.action" меню отображается нормально, но если я ввожу данные в форму, отправляю форму, и отправка имеет ошибки проверки, я возвращаюсь на страницу, форма отображается нормально, но меню пропал, отсутствует. У меня все еще есть "..." на странице, но нет меню... Это похоже на то, что вызывается действие, которое дает меню, но метод execute() не выполняется...

Может кто-нибудь помочь мне с этим?

Васи.

2 ответа

Пожалуйста, обратите внимание на 1-ю строку. Тег s:action не закрыт должным образом. Должно быть так:

<s:action name="headerMenu" executeResult="true" namespace="/menu"></s:action>

Я хотел бы выяснить, может ли причина быть связана со следующими 2 фрагментами из документации тега struts2:

"Любой обработчик результатов, определенный для этого действия в struts.xml, будет игнорироваться, если не указан параметр executeResult".

"Действие не будет опубликовано в контексте до тех пор, пока не будет оценен весь тег, а это означает, что внутри тела тега действие недоступно"

Другие вопросы по тегам