我在使用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()方法没有执行......
有人可以帮帮我吗?
瓦西。
答案 0 :(得分:3)
答案 1 :(得分:0)
我会查看原因是否与struts2标记文档中的以下2个片段有关:
“除非指定了executeResult参数,否则将忽略在struts.xml中为此操作定义的任何结果处理器。”
“在评估整个标记之前,操作不会发布到上下文,这意味着在标记的主体内部,无法访问操作”