Тег действия не выполняется в Struts 2 - PullRequest
0 голосов
/ 23 марта 2009

У меня проблема с вызовом действий из моих страниц 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 ]

3 голосов
/ 26 июля 2010

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

<s:action name="headerMenu" executeResult="true" namespace="/menu"></s:action>
0 голосов
/ 30 марта 2009

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

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

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

...