struts2与ajax
来源:互联网 发布:qq空间个性域名注册 编辑:程序博客网 时间:2024/06/11 23:02
使用Ajax返回的字符串
案例:校验用户名是否存在
创建jsp向服务器发送ajax请求
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTMLPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ajax.jsp' starting page</title>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
</head>
<script type="text/javascript">
$(function(){
$("input").blur(function(){
$.ajax({
url:"ajax.action",
data:{"uname":$("input").val()},
type:"post",
dataType:"text",
success:function(data){
if(data=="0"){
$("span").html("");
}else{
$("span").html("用户名已存在");
}
},
error:function(){
alert("出错");
}
});
});
});
</script>
<body>
<input type="text" name="uname"/><span></span>
</body>
</html>
创建action,写一个返回InputStream的方法,该方法把需要返回的字符串转换成流的方式返回
public class AjaxTestAction extends ActionSupport{
private Stringuname;
public InputStream getMessage()throws UnsupportedEncodingException{
String msg="";
//判断用户名是否存在
if("asd".equals(uname)){
msg="1";
}else{
msg="0";
}
InputStream is=new ByteArrayInputStream(msg.getBytes("utf-8"));
return is;
}
//省略get/set
}
配置struts.xml
<action name="ajax"class="base.AjaxTestAction">
<result type="stream">
<param name="inputName">message</param>
<!-- 该流封装的数据,做成一个网页格式 -->
<param name="contentType">text/html</param>
</result>
</action>
测试.
以上主要返回的是一个字符串,这种单字符串数据在开发中会大量使用,如仅仅修改密码,修改性别,修改状态等信息。
如果要返回一个对象,或者要返回一个集合到页面中,也可以使用上面的方式完成,如:返回一个UserDTO,或者返回一个List<UserDTO>.实现的方式,就是把对象和集合自己拼接成一个JSON格式的字符串,UserDTO--àjson Object; List<UserDTO>--àjson array.
使用Ajax返回的json
使用过程:
1. 导入JSON的插件
2. 写一个普通的Action类,需要封装的数据声明属性和get方式。
3. 在struts.xml文件中,包要继承json-default
4. 在action的配置中,配置结果类型为json
第一步 导入
第二步 编写jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'ajax.jsp' starting page</title>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
</head>
<script type="text/javascript">
$(function(){
$("input").click(function(){
$.ajax({
url:"uajax.action",
type:"get",
dataType:"text",
success:function(data){
alert(data);
},
error:function(e){
alert(e.status);//404 500 200
}
});
});
});
</script>
<body>
<input type="button" value="点击"/>
</body>
</html>
第三步 编写action
public class AjaxUserAction extends ActionSupport{
private Useru;
public String getUser(){
User u1=new User();
u1.setUname("张三");
u1.setUserid(123);
u1.setPhone("111");
u=u1;
return "success";
}
public User getU() {
return u;
}
public void setU(User u) {
this.u = u;
}
}
第四步 配置struts.xml
<package name="new" extends="json-default">
<action name="uajax" class="base.AjaxUserAction" method="getUser">
<result type="json">
<param name="root">u</param>
</result>
</action>
</package>
- ajax与struts2操作
- struts2与ajax结合
- struts2与ajax
- Struts2与ajax
- 【Struts2】Struts2学习(8) Ajax与Json
- 简单的ajax与struts2实例
- 简单的ajax与struts2实例
- 简单的ajax与struts2实例
- ajax之jquery与struts2通信
- 【communication】ajax之jquery与struts2通信
- $.post 与 $.ajax struts2的缺点
- struts2与ajax的整合总结
- struts2+jqury ajax问题汇总与解决办法
- struts2+jqury ajax问题汇总与解决办法
- Struts2与ajax整合之缺点
- Struts2与ajax结合的缺点
- struts2+jqury ajax问题汇总与解决办法
- Struts2 区分 AJAX 与传统请求
- C语言操作符总结
- 【深入浅出jQuery】源码浅析--整体架构
- 堆和栈的区别
- ping工具模拟实现
- 用两个栈实现队列
- struts2与ajax
- Java static静态属性和静态方法内存分析和注意事项静态方法不能调用非静态属性和非静态方法,普通方法可以调用静态属性和方法
- 总结-2017/10/8
- 开放系统互联
- 实验二 线性表综合实验之《单链表》
- java第三天/10.1
- struts2运行流程
- 理论篇~第六章 元数据
- JavaWeb-NewsServlet-大总结