我正在使用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>
答案 0 :(得分:0)
我认为 - 基于tab标签生成的html代码 - 提交标签应该是这样的:
<sj:submit name="submit" value="AjaxSubmit" href="%{ADDUSER}" targets="Add_User"/>
答案 1 :(得分:0)
您的网页中可能存在javascript错误,导致jquery插件无法将回调绑定到sj标记。这很可能是由于您的一些脚本与插件使用的jquery脚本冲突造成的。检查你的javascript错误日志,并尝试注释掉脚本标签(很可能是另一个jquery脚本)来找到罪魁祸首。