struts2 jquery在表单提交上加载相同的页面

时间:2012-08-28 13:56:28

标签: jquery struts2

我正在使用struts2(版本2.1.8)和jquery插件(版本1.8.3)来构建Web 应用

我正在设计一个简单的用例,在提交表单时,同一页面被加载到ui上, 以这种方式: 1)如果存在from验证错误,则验证消息应显示在同一页面上。 2)如果有成功消息,该消息将显示在同一页面上。

我遇到的问题是,在这两种情况下,struts2都会重定向到结果 在struts.xml中指定但在单独的页面上,现有页面消失。

以下是我的主页。(我使用标签式面板设计标签。)

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head jqueryui="true"/>
  </head>
  <body>    
    <s:url var="addUserUrl" action="inputUser"/>
    <s:url var="deleteUserUrl" action="getDeleteUsers"/>  
    <sj:tabbedpanel id="mytabs2">
      <sj:tab id="tab1" href="%{addUserUrl}" label="Add User"/>
      <sj:tab id="tab2" href="%{deleteUserUrl}" label="Delete User"/>
    </sj:tabbedpanel>
 </body>
</html>

主页加载了从“addUserUrl”(inputUser.action)返回的数据,如预期的那样。(下面在struts.xml中配置addUser.jsp)

但是当提交addUser.jsp时,success-add.jsp或addUser.jsp显示为单独的页面,而不是在同一页面内,具体取决于struts.xml下面配置的成功或验证错误

是否有任何方式可以在主页本身中显示这两个页面而不是 作为一个单独的页面。

    <action name="inputUser" class="addUserAction" method="input">
        <result name="form">addUser.jsp</result>            
    </action>       

    <action name="addUser" class="addUserAction" method="addUser">
        <result name="success">success-add.jsp</result>
        <result name="input">addUser.jsp</result>
    </action>

2 个答案:

答案 0 :(得分:0)

我认为 - 基于tab标签生成的html代码 - 提交标签应该是这样的:

<sj:submit name="submit" value="AjaxSubmit" href="%{ADDUSER}" targets="Add_User"/>

答案 1 :(得分:0)

您的网页中可能存在javascript错误,导致jquery插件无法将回调绑定到sj标记。这很可能是由于您的一些脚本与插件使用的jquery脚本冲突造成的。检查你的javascript错误日志,并尝试注释掉脚本标签(很可能是另一个jquery脚本)来找到罪魁祸首。