1. 程式人生 > >jquery+ajax+struts實現非同步重新整理

jquery+ajax+struts實現非同步重新整理

1. 由於 非同步刷新技術這麼火,所以 探究玩一下;

    在 jquery  中 有專門為 ajax 而設的 方法和 

          首先就是 匯入 struts的jar包+json.js+jq.js+struts-plugin-json.jar

 2.   頁面 初始化就開始載入異 步的資料 $(function(){ ajax程式碼  })

   1.JSON.stringify ========= object----jsonstring           

<script type="text/javascript" src="lib/json2.js"></script>
	<script type="text/javascript">
		$(function(){
				
			$.ajax({
				 type: "GET",
                                 url: "useract_loadPremission.action",
	                        dataType: "json",
	                        success: function(data){
	            	        // alert(JSON.stringify(data));
	            	          var dt = data.tps;//所有的許可權
	            	                   可以直接用 dt[i].id 遍歷,因為 是 struts直接 轉換成了 json物件
	                           },
	                         error:function(data){
	            	        alert(JSON.stringify(data)); // 
	                                             }
			});
		});
</script>

 2.  struts ----struts中 就是 必須要加 json-default 

<package name="onlinedef" namespace="/"
		extends="struts-default,json-default">
		<action name="useract_*" method="{1}" class="userAction">
			<result name="toindex">/index.jsp</result>
			<result name="tomain">/WEB-INF/view/main.jsp</result>
			<result name="ajax" type="json">
				<param name="includeProperties">
<span style="white-space:pre">					</span>tps \ [\ d+\ ]\.preId,
<span style="white-space:pre">					</span>tps \ [\ d+ \]\.preName,
<span style="white-space:pre">					</span>tps \ [\ d+ \ ]\.preUrl,
<span style="white-space:pre">					</span>tps \ [ \ d+ \ ]\.preParentId,
<span style="white-space:pre">				</span></param>
			</result>
		</action>
	</package>

3. action中有很多的資料, 必須防止 json把所有的 資料都轉化了

private user tps;---get方法

public String loadPremission() {

tps = userService.findPremissionByUser(CommonUtils.getSessionUser(
getRequest()).getUserId());

return "ajax";                     ----   struts中宣告是 type=json 
}                                      --------    json取出來             var ss= data.tps;


  6.如果 是 提交 表單的資料

$.ajax({ cache: true, type: "POST", url:ajaxCallUrl, data:$('#yourformid').serialize(),// 你的formid async: false, error: function(request) { alert("Connection error"); }, success: function(data) { $("#commonLayout_appcreshi").parent().html(data); } });