struts2实现ajax功能
来源:互联网 发布:ug创建自己的编程模版 编辑:程序博客网 时间:2024/06/04 23:21
在struts2项目中,我们也会使用到ajax功能,有两种方式来实现ajax功能,一种是可以使用servletAPI来实现ajax的功能,另一种是使用struts2的插件来实现,
下面我们先来写一个简单的
在struts2项目中使用servletAPI实现ajax功能
demo来演示一下ajax功能。
项目结构:
index.jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript" src="js/jquery-3.2.1.js"></script><script type="text/javascript">$(function(){$('#btn').click(function(){$.post("ajax.action" , function(data){$("#msg").html(data) ;}) ;});}) ;</script></head><body><input type="button" id="btn" value="获取ajax信息" /><h3 id="msg"></h3><br></body></html>
点击“获取ajax信息按钮”,在js中,通过jQuery来获取button事件然后使用post请求,从Action类中获取信息,展示在h3标签中。
AjaxAction.java代码:
package com.robert.action;import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;public class AjaxAction {public String execute() throws IOException {HttpServletResponse resp = ServletActionContext.getResponse() ;resp.setCharacterEncoding("utf-8") ;resp.getWriter().print("struts ajax") ;return null ;}}
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="default" namespace="/" extends="struts-default"><action name="ajax" class="com.robert.action.AjaxAction"></action></package></struts>
点击 获取ajax信息 按钮,
struts ajax 字符串是AjaxAction类中的
HttpServletResponse resp = ServletActionContext.getResponse()resp.setCharacterEncoding("utf-8") ;resp.getWriter().print("struts ajax") ;
response返回的信息,说明ajax成功。
下面我们来看一下怎么
使用struts2插件来实现ajax
项目结构:
struts2实现ajax功能,需要使用插件来实现,插件一共有两个,如图,图中红框中的两个便是struts2实现ajax时,使用的json包
其中还有一个json-lib-2.3-jdk15.jar包,这个包中有JSONArray类,有的程序中由于包不对,还有可能报一些错误,
如:java.lang.ClassNotFoundException:org.apache.commons.lang.exception.NestableRuntimeException,
java.lang.NoClassDefaultError:org/apache/commons/collections/map/ListOrderedMap.
我这里遇到了两个,如图:
这两个都是由于jar的原因,我导入了commons-lang-2.4.jar和commons-collections-3.2.2.jar后,问题就解决了。
json.jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript" src="js/jquery-3.2.1.js"></script><script type="text/javascript">$(function(){$('#btn').click(function(){$.post("json.action" , function(data){var html = "" ;for(var i=0;i<data.length;i++) {html += "<tr><td>"+data[i].name+"</td><td>"+data[i].age+"</td></tr>" ;}$('#content').html(html) ;},'json') ;});}) ;</script></head><body><input type="button" id="btn" value="获取json信息" /><table width="80%" align="center"><tr><td>姓名</td><td>年龄</td></tr><tbody id="content"></tbody></table><br></body></html>
struts.xml配置代码:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="default" namespace="/" extends="json-default"><action name="ajax" class="com.robert.action.AjaxAction"></action><action name="json" class="com.robert.action.JsonAction"><result type="json"><!-- param里面name=“root”必须这样写,后面的那个root是JsonAction中的JSONArray的变量root --><param name="root">root</param></result></action></package></struts>
JsonAction.java中的代码:
package com.robert.action;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import com.opensymphony.xwork2.Action;import com.robert.entity.User;public class JsonAction {private JSONArray root;public String execute() {List<User> list = new ArrayList<User>() ;list.add(new User("robert", 20)) ;list.add(new User("jie", 19)) ;list.add(new User("jing", 22)) ;root = JSONArray.fromObject(list) ;System.out.println("root="+root.toString());return Action.SUCCESS ;}public JSONArray getRoot() {return root;}public void setRoot(JSONArray root) {this.root = root;}}
User.java代码:
package com.robert.entity;public class User {private String name;private int age;public User(String name, int age) {super();this.name = name;this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
浏览器中输入URL:http://localhost:8080/ajax/json.jsp , 点击“获取json信息”按钮
阅读全文
0 0
- struts2实现ajax功能
- jsp+Struts2.0+jquery+ajax功能实现
- Struts2 整合jQuery实现Ajax功能
- Struts2 整合jQuery实现Ajax功能
- Struts2 整合jQuery实现Ajax功能(1)
- Struts2 整合jQuery实现Ajax功能(2)
- Struts2 整合jQuery实现Ajax功能
- Ajax+Struts2实现验证码验证功能
- 【Struts2】利用JQuery实现Struts2的Ajax功能
- Jquery、Json、Struts2、Spring实现Ajax动态功能以及注意事项
- 使用Struts2+JavaScript+Ajax实现成绩录入功能
- Struts2+AJAX+JQuery 实现用户登入与注册功能
- Ajax+Struts2实现验证码验证功能实例代码
- Struts2 + jQuery 实现ajax
- struts2的ajax实现
- struts2+jquery实现ajax
- Struts2 + jQuery 实现ajax
- struts2 实现ajax传参
- pcl1.6+vs2010配置
- Java设计模式-模板方法模式
- SGE的简单安装介绍
- 看看B2B网站运营人员日常的一些基本工作 你做的到吗?
- Scala使用JUnit4单元测试
- struts2实现ajax功能
- 在Linux中安装AndroidStudio
- Struts2和common的fileupload实现文件上传并显示实时进度
- Linux驱动开发准备
- 游戏编程入门(7):使用子画面动画移动对象
- oop总结
- MFC中的CArray数组使用
- Eclipse常用快捷键
- 前端开发资源汇总