1

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

我正在设计一个简单的用例,在提交表单时,同一页面会加载到 ui 上,其方式是:1)如果出现验证错误,则应在同一页面上显示验证消息。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)返回的数据,如预期的那样。(addUser.jsp 如下在 struts.xml 中配置)

但是当 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>
4

2 回答 2

0

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

于 2013-04-19T06:20:15.343 回答
0

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

<sj:submit name="submit" value="AjaxSubmit" href="%{ADDUSER}" targets="Add_User"/>
于 2012-08-29T09:28:46.147 回答