struts2,json,ajax整合内容记录(改)

使用ssh三大框架整合时关于struts2,json,ajax整合内容记录。这里写主要部分代码

action部分:

注意事项,action部分的返回值要有set和get方法,否则会报错。

package com.hcj.action;

import net.sf.json.JSONObject;

import com.hcj.dto.User;
import com.hcj.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

//用户注册
public class IsUsernameExistAction extends ActionSupport {


	private UserService userService;
	
	private String username;
	
	//这里为json的返回值,这个返回值记得一定要写他的get和set方法,否则会出现错误
	private String result;
	
	public String getResult() {
		return result;
	}

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

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	
	@Override
	public String execute() throws Exception {
		boolean flag = userService.isUsernameExist(username);
		if(flag){
			result = "true";
		}else{
			result = "false";
		}
        return SUCCESS;
	}
}	

struts.xml部分:(这里有两个部分.第二个是我按照网上大部分写的用法,但不知为何,这样返回到前台的结果为String,而不是我想要的Json对象,大家可以试试第二种方法,第一种我用过,亲测可用)

第一种(测试可用):

<package name="json" namespace="" extends="json-default">
		<action name="isUsernameExistAction" class="com.hcj.action.IsUsernameExistAction">
			<!-- 这里result里的name为对应action里的返回值,这里即IsUsernameExistAction类的返回值 -->
			<result type="json" name="success">
				<param name="includeProperties">
				<!--这里写要传的属性,用逗号隔开-->
					result
				</param>
			</result>
		</action>
	</package>

返回结果效果图:

第二种(我用这种方法时,返回的是String类型,而非我想要的json类型)

<package name="json" namespace="" extends="json-default">
		<action name="isUsernameExistAction" class="com.hcj.action.IsUsernameExistAction">
			<result type="json">
				<!-- 这里的root为固定写法,result为action部分定义的返回值名称 -->
				<param name="root">result</param>
			</result>
		</action>
	</package>

返回效果图:


前台界面(ajax部分)

1.原生js写法:

//发送ajax请求
		function ajax(value) {

	          //先声明一个异步请求对象
	          var xmlHttpReg = null;
	          if (window.ActiveXObject) {//如果是IE

	              xmlHttpReg = new ActiveXObject("Microsoft.XMLHTTP");

	          } else if (window.XMLHttpRequest) {

	              xmlHttpReg = new XMLHttpRequest(); //实例化一个xmlHttpReg
	          }

	          //如果实例化成功,就调用open()方法,就开始准备向服务器发送请求
	          if (xmlHttpReg != null) {
	        	  //url里填写请求地址
	        	  var url = "http://localhost:8080/xxx/isUsernameExistAction.action?username="+ value;
	              xmlHttpReg.open("get", url, true);
	              xmlHttpReg.send(null);
	              xmlHttpReg.onreadystatechange = doResult; //设置回调函数

	          }

	          //回调函数
	          //一旦readyState的值改变,将会调用这个函数,readyState=4表示完成相应

	          //设定函数doResult()
	          function doResult() {
	          
	              if (xmlHttpReg.readyState == 4) {//4代表执行完成
	            	  console.log("11" + xmlHttpReg.responseText);
	                  if (xmlHttpReg.status == 200) {//200代表执行成功
	                      //将xmlHttpReg.responseText的值赋给ID为resText的元素
	                      //document.getElementById("resText").innerHTML = xmlHttpReg.responseText;
						  console.log(xmlHttpReg.responseText);
	                  }
	              }

	          }
	        

	      }
2.jquery写法

//发送ajax请求
			function ajax(value) {
				 var url = "http://localhost:8080/Hikvision/isUsernameExistAction!check.action?username="+ value;
		         
				$.get(url,function(data){
					if(data.result == "yes"){
		           		$("#text").html("该用户名已经存在");
		           		$("#text").css({"color":"red"});
		           		flag = false;
		           	 }else{
		           		$("#text").html("该用户名不存在,可以使用");
		           		$("#text").css({"color":"green"});
		           		flag = true;
		           	 }
				},'json');
		        
	
		    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值