打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浅谈struts2、jquery与json的集成

struts2、jquery与json的集成是怎样实现异步交互的,下面我们来做个综合的小案例。
做案例的前提是:先要引入必要的jar包。

比如:

1、struts2-core-2.x.x.x.jar :Struts 2框架的核心类库
2、xwork-2.x.x.jar :XWork类库,Struts 2在其上构建
3、ognl-2.x.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性
4、freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写
5、commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。
6、commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件
7、struts2-json-plugin.jar struts2与json的插件


cn.z_xiaofei168.domain包


 
001package cn.z_xiaofei168.domain;
002  
003import java.io.Serializable;
004import java.util.Date;
005  
006public class User implements Serializable {
007  
008/**
009* @author z_xiaofei168
010*/
011private static final long serialVersionUID = 1L;
012  
013/** 用户的编号 */
014private Integer id;
015/** 用户的名称 */
016private String name;
017/** 用户的密码 */
018private String pass;
019/** 用户的邮箱 */
020private String email;
021/** 用户的注册日期 */
022private Date rdate;
023  
024public User() {
025super();
026}
027  
028//以下省略所以的set和get方法
029}
030  
031  
032  
033cn.z_xiaofei168.action包
034  
035  
036Java代码
037package cn.z_xiaofei168.action;
038  
039import java.util.List;
040  
041import cn.z_xiaofei168.dao.Pagination;
042import cn.z_xiaofei168.domain.User;
043import cn.z_xiaofei168.service.UserServiceImpl;
044  
045import com.opensymphony.xwork2.ActionSupport;
046  
047public class UserAction extends ActionSupport {
048  
049/**
050* @author z_xiaofei168
051*/
052private static final long serialVersionUID = 1L;
053  
054/** 业务层对象 */
055private UserServiceImpl userServiceImpl;
056private List<User> list;
057  
058public UserServiceImpl getUserServiceImpl() {
059return userServiceImpl;
060}
061  
062/** set方法注入 */
063public void setUserServiceImpl(UserServiceImpl userServiceImpl) {
064this.userServiceImpl = userServiceImpl;
065}
066  
067public List<User> getList() {
068return list;
069}
070  
071public void setList(List<User> list) {
072this.list = list;
073}
074  
075/** 模糊查新的方法 */
076public String findByDarkName() throws Exception{
077list = userServiceImpl.findByDarkName(user.getName());
078return "findByDarkName";
079}
080}
081  
082  
083  
084cn.z_xiaofei168.dao包
085  
086  
087  
088Java代码
089package cn.z_xiaofei168.dao;
090  
091import java.util.List;
092  
093import cn.z_xiaofei168.domain.User;
094  
095public interface UserDao {
096  
097public List<User> findByDarkName(String name) throws Exception;
098}
099  
100  
101  
102  
103Java代码
104package cn.z_xiaofei168.dao;
105  
106import java.util.List;
107  
108import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
109  
110import cn.z_xiaofei168.domain.User;
111  
112public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
113  
114@SuppressWarnings("unchecked")
115public List<User> findByDarkName(String name) throws Exception {
116  
117List list = this.getHibernateTemplate().find("from User where name like ?","%"+name+"%");
118System.out.println("findByDarkName模糊:"+list.size());
119return list;
120}
121  
122}
123  
124  
125cn.z_xiaofei168.service包
126  
127  
128  
129Java代码
130package cn.z_xiaofei168.service;
131  
132import cn.z_xiaofei168.dao.UserDao;
133  
134public interface UserService extends UserDao {
135  
136}
137  
138  
139  
140Java代码
141package cn.z_xiaofei168.service;
142  
143import java.util.List;
144  
145import cn.z_xiaofei168.dao.UserDaoImpl;
146import cn.z_xiaofei168.domain.User;
147  
148public class UserServiceImpl implements UserService {
149  
150private UserDaoImpl userDaoImpl;
151  
152public UserDaoImpl getUserDaoImpl() {
153return userDaoImpl;
154}
155  
156/** set方法进行注入 */
157public void setUserDaoImpl(UserDaoImpl userDaoImpl) {
158this.userDaoImpl = userDaoImpl;
159}
160  
161public List<User> findByDarkName(String name) throws Exception {
162return userDaoImpl.findByDarkName(name);
163}
164  
165}



struts.xml

01<?xml version="1.0" encoding="UTF-8" ?>
02<!DOCTYPE struts PUBLIC
03"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
04"http://struts.apache.org/dtds/struts-2.1.7.dtd">
05<struts>
06<package name="z_xiaofei" extends="json-default" namespace="/csdn">
07<global-results>
08<result name="input">/index.jsp</result>
09</global-results>
10  
11<action name="user_*" class="cn.z_xiaofei168.action.UserAction" method="{1}">
12  
13<!-- 返回的是一个user对象 user对象(id,name,pass) -->
14<result name="findByDarkName" type="json">
15<!-- param参数的配置,includeProperties -->
16<param name="includeProperties">
17list\[\d+\]\.id, list\[\d+\]\.name, list\[\d+\]\.pass
18</param>
19</result>
20</action>
21</package>
22</struts>


jsp页面

01<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
02<%
03String path = request.getContextPath();
04String basePath = request.getScheme() + "://"
05+ request.getServerName() + ":" + request.getServerPort()
06+ path + "/";
07%>
08  
09<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
10<html>
11<head>
12<base href="<%=basePath%>">
13  
14<title>用户信息输入</title>
15  
16<meta http-equiv="pragma" content="no-cache">
17<meta http-equiv="cache-control" content="no-cache">
18<meta http-equiv="expires" content="0">
19<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
20<meta http-equiv="description" content="This is my page">
21<!--
22<link rel="stylesheet" type="text/css" href="styles.css">
23-->
24<script type="text/javascript"
25src="${pageContext.request.contextPath}/js/jquery-1.6.js">
26</script>
27<script type="text/javascript">
28  
29function findByDarkName() {
30var name = $("#darkName").val();
31$.ajax({
32type:"post",
33url:"csdn/user_findByDarkName",
34data:"user.name="+name,
35dataType:"json",
36success:function(data){
37$.each(data.list,function(i,entity){
38$("#darklist").append("<tr style='border:1px'></tr>")
39.append("<td>"+entity.id+"</td>")
40.append("<td>"+entity.name+"</td>")
41.append("<td>"+entity.pass+"</td>");
42});
43}
44});
45}
46</script>
47</head>
48  
49<body>
50<br />
51<div>
52<h2>
53<font color="red">模糊查询</font>
54</h2>
55<br />
56<h3>

模糊性:在给出的信息中,与之有相同的元素即可
01</h3>
02<br />
03<input type="text" id="darkName" name="user.name" />
04<span id="msg"></span>
05<input type="button" value="模糊查询" onclick="findByDarkName()" />
06</div>
07  
08<table>
09<thead>
10<tr>
11<th>序号</th>
12<th>名称</th>
13<th>密码</th>
14<th>注册日期</th>
15<th>操作</th>
16</tr>
17</thead>
18<tbody id="darklist">
19</tbody>
20</table>
21</body>
22</html>

struts配置文件里有个type=json 并且文件继承了json-default,该文件在struts2-jon-plugin.jar里面定义了.里边定义了一个interceptor,会将action中提供了get set方法的属性封装成json格式数据response给客户端,

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Struts2之ajax初析
关于Struts-JSON配置(详解带实例struts2的json数据支持)
ssh单元测试之service测试
struts2和Jquery?EasyUI整合数据查询(DataGrid)
jquery之ajaxfileupload异步上传插件
在struts 2中使用json ajax支持
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服