我有一个使用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/
.......................................
<%@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>
....................................................
<%@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>
.......................
<%@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>