Action标记不在Struts 2中执行

时间:2009-03-23 20:19:48

标签: java html jsp struts2 struts-action

我在使用struts2中的标记从我的jsp页面调用操作时遇到问题。我有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文件呈现一个菜单,该菜单来自headerMenu操作的Action类中的LinkedList(命名菜单)。

当访问“login.action”时,菜单呈现正常,但如果我在表单中输入数据,提交表单,并且提交有验证错误,我返回页面,表单呈现正常,但菜单丢失了。我仍然在页面中有“...”,但没有菜单......就像调用菜单的操作一样,但execute()方法没有执行......

有人可以帮帮我吗?

瓦西。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

我会查看原因是否与struts2标记文档中的以下2个片段有关:

“除非指定了executeResult参数,否则将忽略在struts.xml中为此操作定义的任何结果处理器。”

“在评估整个标记之前,操作不会发布到上下文,这意味着在标记的主体内部,无法访问操作”