我正在使用 Struts2、tiles 和 struts2 的 jQuery 插件。
好的,我一直在寻找这个答案,但在任何地方都找不到。
假设我有下一个模板:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<sj:head locale="es" compressed="true" loadAtOnce="true"
jqueryui="true" loadFromGoogle="false"
jquerytheme="redmond" customBasepath="../themes/"/>
</head>
<body id="bodyId">
<div id="outer" class="wrapper">
<div id="header" >
<tiles:insertAttribute name="header" />
</div>
<div id="nav">
<tiles:insertAttribute name="menu" />
</div>
<div id="usersLabel" class="labelUser">
<s:text name="common.user" />
<s:text name="%{#session.user}"></s:text>
</div>
<div id="content" >
<tiles:insertAttribute name="body" />
</div>
<div id="footer">
<tiles:insertAttribute name="footer" />
</div>
</div>
</body>
</html>
<div id="content"></div>
在我里面
<form id="form" action="operation_operation">
:
stuff
:
<sj:submit id="submit"
value="%{getText('common.accept')}"
formIds="form"
targets="content"
button="true" />
</form>
当表单通过<sj:submit/>
仅“主” div 内的内容被重新加载时,这是预期的行为,但是当我尝试再次提交表单时,操作的结果不会在主 div 内重新加载,而是重定向到动作结果(它不使用 ajax)
这是我第一次渲染页面时看到的(在 chrome 中):
<input type="submit" id="submit" value="Accept"
class="ui-button ui-widget ui-state-default ui-corner-all"
role="button" aria-disabled="false">
提交表单后,<div id="content"/>
重新加载之间的内容,但提交已更改,我看到:
<input type="submit" id="submit" value="Accept" class="">
再次提交表单后,我只是被重定向到结果页面,而不是重新加载内容 div。它就像一个不使用 ajax 的普通重定向。
我不明白为什么会这样:s
如果我将 <sj:submit>
内容 div 放在外部,那么这个 div 总是通过 ajax 重新加载,问题是当<sj:submit>
它位于 div 内部时。
我的操作配置如下:
<action name="operation_*" method="{1}" class="OperationAction">
<interceptor-ref name="sessionExpireStack" />
<result name="success" type="tiles">operation</result>
<result name="input" type="tiles">operation</result>
</action>
模板的定义是下一个:
<definition name="template" template="/jsp/common/template.jsp">
<put-attribute name="title" value="My Application"/>
<put-attribute name="header" value="/jsp/common/header.jsp" />
<put-attribute name="menu" value="/jsp/common/menu.jsp" />
<put-attribute name="body" value="/jsp/common/blank.jsp" />
<put-attribute name="footer" value="/jsp/common/footer.jsp" />
</definition>