jQuery と ajax を使用する Java Struts2 Web アプリケーションがあります。
JSP のソース コードを以下に示します。
welcome.jsp には、3 つのテキスト フィールド、1 つの選択フィールド、および ajax($.load()) を使用してロードされる 1 つのフィールドがあります。
welcome.jsp にデータを入力して送信ボタンをクリックすると、success.jsp が取得されます。success.jsp から戻るボタン (history.back() にマッピング) をクリックすると、welcome.jsp に戻りますが、フィールドのデータが正しく読み込まれません。ajax を使用してロードされたフィールドの前のすべてのフィールドはデータを保持しますが、ajax を使用してロードされたフィールドの後のフィールドはデータを保持しません。
上記の問題は Firefox ブラウザーで発生しますが、Internet Explorer では発生しません。
jquery アドレス プラグインはこの問題を解決しますか? もしそうなら、どうすればいいですか?私はjQueryが初めてなので、彼らのサイトのドキュメントはあまり役に立ちませんでした。
以下のURLを参考にしました。
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>
suburbauto.jsp (suburb アクションで subcategorydiv にロード)
....................................................
<%@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>