我有一个使用 jQuery 和 ajax 的 Java Struts2 Web 应用程序。
JSP 的源代码如下所示。
在welcome.jsp 中,有三个文本字段,一个选择字段和一个使用ajax($.load()) 加载的字段。
在welcome.jsp 中输入数据后单击提交按钮获取success.jsp。如果我们单击success.jsp 中的后退按钮(映射到history.back()),我们将返回welcome.jsp,但字段中的数据未正确加载。使用 ajax 加载的字段之前的所有字段都保留其中的数据,但使用 ajax 加载的字段之后的字段不保留数据。
上述问题出现在 Firefox 浏览器中,但不在 Internet Explorer 中。
jquery地址插件会解决这个问题吗?如果是这样,我该怎么做?他们网站上的文档对我没有多大帮助,因为我是 jQuery 新手。
我引用了以下网址。
https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin
http://www.jquery4u.com/plugins/history-back-button-plugins/
http://www.asual.com/jquery/address/
欢迎.jsp
.......................................
<%@taglib uri="/struts-tags" prefix="s"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<!DOCTYPE html>
<html>
<head>
.................................................
<title>Welcome</title>
<sj:head jqueryui="true" debug="true"/>
</head>
<body>
<s:form id="suburbform" name="suburbform" action="sub">
<s:label value="Test Field1"></s:label>
<s:textfield name="field1"></s:textfield>
<br/>
<table>
<tr>
<td><s:label value="Category"></</s:label></td>
<td><s:select name="category" id="categorySelect" list="{'Fruits','Vegetables'}"></s:select>
</td>
</tr>
</table>
<div id="subcategorydiv">
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#categorySelect').change(function(){
var catValue = $(this).val();
$('#subcategorydiv').load("suburb.action#resultdiv",{category:catValue});
});
$('#subcategorydiv').load(
"suburb.action#resultdiv",
{category:"Fruits"});
});
</script>
<s:label value="Test Field2"></s:label>
<s:textfield name="field2"></s:textfield>
<br/>
<s:label value="Test Field3"></s:label>
<s:textfield name="field3"></s:textfield>
<br/>
<s:submit id="sub1"></s:submit>
</s:form>
</body>
</html>
郊区汽车.jsp(通过郊区行动加载到子类别div中)
....................................................
<%@taglib uri="/struts-tags" prefix="s"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<!DOCTYPE html>
<html>
<head>
......................
<title>Welcome</title>
</head>
<body>
<div id="resultdiv">
<s:url id="fruitsurlid" var="fruitsurl" namespace="/autocompleter" action="getfruits">
<s:param name="category" value="%{category}"></s:param>
</s:url>
<s:label value="SubCategory"></s:label>
<sj:autocompleter id="autocompleterId" name="autocompleter1" href="%{fruitsurl}"></sj:autocompleter>
</div>
</body>
</html>
成功.jsp
.......................
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Success</title>
</head>
<body>
Subcategory: <s:property value="autocompleter1"/>
</body>
</html>