struts2+jquery+json 實現ajax請求,對象傳值

剛剛在網上東拼西湊的查了一下struts2+jquery+json 實現ajax請求,走了些許彎路,希望這篇文章對想了解ajax請求的同胞們一點幫助。

廢話少說,實現ajax首先要有jar包。首先加入struts2的jar包,要用json需要加入commons-lang.jar,commons-beanutils-jar,ezmorph.jar,json-lib.jar,json-plugin.jar,commons-collections.jar,commons-logging-jar,注意commons-logging-jar,struts2包中裏面有。

web.xml加上struts2配置

<filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

struts.xml注意繼承json-default

<package name="frontAjax" extends="json-default" namespace="/front">
<action name="userLogin" class="com.apache.shopping.action.UserLoginAjaxAction">
<result type="json">
<param name="root">result</param>
</result>
<result type="json" name="error"></result>
</action>
</package>

ajax.jsp

說明一下,$.ajax(),這裏可以用$,get(),$.post(),但是隻有用$.ajax()才能和struts2返回的各種result做相應處理,

<script type="text/javascript">
            function clickButton()
            {    
          
             $.ajax({
				   url:"front/userLogin!userLogin",
				   data:{'userDto.name':$('#name').attr('value'),'userDto.password':$('#password').attr('value')},//傳送給後臺的dto
				   dataType:'json',
				   type:'post',
				   async: false,
   				   success:function(data){
											 alert(data);
								         },
   				   error: function (XMLHttpRequest, textStatus, errorThrown) {
										alert("111"+textStatus);
										}
   					});  
            }
               
        </script>
    用戶名 <input type="text"  id="name" class="input"/>
  <input type="password" name="password" id="password" class="input"/>
   <input class="button" type="submit"  value="登 錄" onclick="clickButton();"/>
  





後臺Action

說明一下,這裏我們可以從前臺穿一個dto,或者vo過來,然後再處理的action中寫上setget方法,返回結果result是一個json對象,是將一個map轉換成string,因爲json裏面的值和map想對應

public class UserLoginAjaxAction extends ActionSupport{
private UserService userService;
private UserDto userDto;
private String result;
public UserDto getUserDto() {
	return userDto;
}

public void setUserDto(UserDto userDto) {
	this.userDto = userDto;
}

public UserService getUserService() {
	return userService;
}

public void setUserService(UserService userService) {
	this.userService = userService;
}
public String userLogin(){
	Map<String,Object> map=new HashMap<String,Object>() ;
	map.put("name","password");
	JSONObject json = JSONObject.fromObject(map);
	result=json.toString();
	System.out.print(userDto.getName()+"   "+userDto.getPassword());
	String s= userService.userLogCheck(userDto.getName(), userDto.getPassword());//這裏是寫好的去後臺數據庫檢查返回值,有可能成功success,有可能失敗error
	System.out.print(s);
	return s;
}

public String getResult() {
	return result;
}

public void setResult(String result) {
	this.result = result;
}

}
userdto
package com.apache.shopping.dto;

import java.util.Date;
public class UserDto {

private String name;//姓名

private String password;//密碼


public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章