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;
}

}


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