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部分:

<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部分):

//发送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);
	                  }
	              }

	          }

	      }
时间: 2024-10-23 15:37:30

struts2,json,ajax整合内容记录的相关文章

博客:Struts2与ajax整合之缺点

之前有篇博客介绍了Struts2与ajax的整合,链接Struts2之-集成Json插件实现Ajax 这里不再累述,看以上博客. 此篇博客想吐槽一下Struts2的缺点--错误处理做的不好,怎么做的不好,哪里做的不好,通过Struts2中Ajax的应用缺陷来介绍. 先提出它的缺点,后面再做出证明. 1,Struts2与Ajax整合的缺点 无论采用$.post还是$.ajax都捕获不到服务器产生的错误($.ajax捕获错误在servlet能做到),是struts2内部设计的不好,不是Ajax的问题

org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp...

之前在用ssh整合json时一直发现前台获取不到json的返回数据,直接运行action出现以下错误: HTTP Status 500 - org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.

Struts2+json+hignchart(简单柱状图实现--适合jquery小白)

做了一个简单的基于Struts2 + Json + HighChart的小例子,费了一下午+晚上的时间,虽然简单,但对于我这种Jquery+Ajax小白的人还是很值得记录的. 哈哈哈 # 0. 关键点找到highchart的模板网站 https://www.hcharts.cn/docs/basic-tooltip # 1. 关键点,在struts.xml中配置返回类型为json <action name="queryItemsJson" class="com.best

Spring+Struts2+Hibernate的整合

这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架, 但是Spring也提供和其他框架的无缝整合,采用组件形式对个框架进行管理,项目实例是按照真实企业里面的开发搭建,也是web的最后一片了.数据库使 用mysql,连接池使用的是Druid数据源(这些都无关紧要,可以随时的替换),下面就将详细的介绍一下Maven搭建 Spring,Struts2,和hibernation的步奏. 1.数据库设计 数据库库表

org.apache.struts2.json.JSONWriter can not access a member of class

偶遇一个问题:org.apache.struts2.json.JSONWriter can not access a member of class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public".困扰了半天,找到了解决方案,写写自己的一些理解. action代码: 1 package edu.bjfu.action; 2 3 import

Struts2之ajax初析

Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,当然这只是在我们需要JSON的时候才会显得流光溢彩. 首先不谈Struts2的原生支持,我们自己写一个ajax示例,使用异步请求,直接请求action动作: InfoAction.java package cn.codeplus.action; import

Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子

转自:http://www.blogjava.net/wangxinsh55/archive/2011/07/24/354925.html Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决) Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子). 1.       jbpm4.4 测试环境搭建 2.       Jbpm4

Struts2对AJAX的支持

一.简介        struts2确实一个非常棒的MVC框架.这里部分记述一下struts2对AJAX的支持.实现AJAX有两种方式,一种是使用原生的javascript代码实现,一种是使用第三方的ajax框架(jquery,dwr,dojo等),jquery和dwr比较简单,做项目时也会经常用到.Struts2并没有发明新的AJAX框架,而是使用两个较为流行的框架,即Dojo框架和DWR框架. Dojo是一个用javascript语言实现的开源DHTML工具包,是一个客户端的AJaX框架,

struts2的Ajax校验

用 ajax在web中做一些校验,会有很好的用户体验,struts2中就整合了ajax的功能. 在 Action 中,添加对应的校验方法(可在官方文档中获取) //Ajax 校验Email是否可用 public String validateEmail() throws UnsupportedEncodingException{ System.out.println(emailValue); if(userService.validateEmail(emailValue)){ // 1 表示已存