关键词:
1. 本示例在第一篇架构基础上添加代码
2. 首先,在dwr.xml文件里添加对象转换器
3. 编写Person实体类
1 package com.skyer.vo; 2 3 import java.util.Arrays; 4 5 public class Person { 6 private String name; 7 private int age; 8 private String[] hobby; 9 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name = name; 15 } 16 public int getAge() { 17 return age; 18 } 19 public void setAge(int age) { 20 this.age = age; 21 } 22 public String[] getHobby() { 23 return hobby; 24 } 25 public void setHobby(String[] hobby) { 26 this.hobby = hobby; 27 } 28 29 @Override 30 public String toString() { 31 return "Person [name=" + name + ", age=" + age + ", hobby=" + Arrays.toString(hobby) + "]"; 32 } 33 }
4. 在核心控制器(CoreServlet.java)里添加如下方法:
1 public Person printPerson(Person person) { 2 System.out.println(person); 3 return person; 4 }
5. 编写测试的jsp页面:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>dwr</title> 13 <script type=‘text/javascript‘ src=‘dwr/engine.js‘></script> 14 <script type=‘text/javascript‘ src=‘dwr/util.js‘></script> 15 <script type=‘text/javascript‘ src=‘dwr/interface/CoreServlet.js‘></script> 16 </head> 17 <body> 18 <div style="margin-top: 20px" align="center"> 19 <button onclick="printPerson();">点击</button> 20 </div> 21 </body> 22 <script type="text/javascript"> 23 function printPerson() { 24 var person = { 25 name: "skyer", 26 age: 18, 27 hobby: [ "爱好1", "爱好2", "爱好3" ] 28 }; 29 30 CoreServlet.printPerson(person, function(data) { 31 alert(data.name + ":" + data.age + ":" + data.hobby); 32 }); 33 } 34 </script> 35 </html>
6. 测试
混合编程jni第四篇之引用和异常(代码片段)
继续写JNI的知识点上篇基本上介绍了数据的转换以及方法签名的相关知识点,不懂的可以看看之前的文章建议循序渐进,不可冒进今天继续介绍JNI的知识点 除八种基本数据类型之外的都是引用数据类型;关于引用Java虚拟... 查看详情
好玩的es--第四篇之聚合查询和集群(代码片段)
好玩的ES--第四篇之聚合查询和集群聚合查询简介测试数据使用根据某个字段分组求最大值求最小值求平均值求和整合应用集群集群Cluster相关概念集群<cluster>节点<node>索引<Index>映射<Mapping>文档<Document>分片&l... 查看详情
linux从青铜到王者第二十四篇:linux网络基础第四篇之websocket协议(代码片段)
系列文章目录文章目录系列文章目录前言一、WebSocket简介二、WebSocket产生背景三、WebSocket实现原理四、WebSocket协议举例五、WebSocket使用1.WebSocket介绍2.WebSocketAPI3.WebSocket事件1.open2.Message3.Error4.Close4.WebSocket方法1.send()2.close()5.WebSocket... 查看详情
高级程序员必须精通的redis,第四篇之——set(集合)(代码片段)
1、简介Redis中所有的的数据结构都是通过一个唯一的字符串key来获取相应的value数据。Redis有5种基础数据结构,分别是:string(字符串)list(列表)hash(字典)set(集合)zset(有序集合... 查看详情
好玩的es--第四篇之聚合查询和集群(代码片段)
好玩的ES--第四篇之聚合查询和集群聚合查询简介测试数据使用根据某个字段分组求最大值求最小值求平均值求和整合应用集群集群Cluster相关概念集群<cluster>节点<node>索引<Index>映射<Mapping>文档<Document>分片&l... 查看详情
好玩的es--第四篇之聚合查询和集群(代码片段)
好玩的ES--第四篇之聚合查询和集群聚合查询简介测试数据使用根据某个字段分组求最大值求最小值求平均值求和整合应用集群集群Cluster相关概念集群<cluster>节点<node>索引<Index>映射<Mapping>文档<Document>分片&l... 查看详情
flink第四篇之flink的datastreamapi(算子解析)
参考技术A以上为Flink的运行模型,Flink的程序主要由三部分构成,分别为Source、Transformation、Sink。DataSource主要负责数据的读取,Transformation主要负责对属于的转换操作,Sink负责最终数据的输出。每个Flink程序都包含以下的若干流... 查看详情
redis系列第四篇之bitmap
参考技术ABitmap实际上并不是一种数据类型,而是定义在String类型上的面向位的操作。因为String是二进制安全的并且最大长度为512MB,所以String可以建立2^32个不同的位。位操作被分为两种:Bitmap最大的一个优点是当存储信息时可... 查看详情
dwr第一篇之入门示例
1. 新建maven-web项目,目录结构如下:2. 在pom.xml里添加dwr所需的依赖1<dependency>2<groupId>org.directwebremoting</groupId>3<artifactId>dwr</artifactId>4<version>3.0.1-RELEASE&l 查看详情
dwr第五篇之文件上传
1. 在第一篇架构基础上进行2. 修改maven依赖1<dependencies>2<dependency>3<groupId>org.directwebremoting</groupId>4 <artifactId>dwr</artifactId>5 <version>3.0.1-RELE 查看详情
第四篇camunda系列-processengine核心对象(代码片段)
一、ProcessEngine ProcessEngine是Camunda流程引擎的核心。我们在流程中的很多具体的处理比如流程部署、流程部署、流程审批等操作都是通过XXXService来处理的。而相关的XXXService都是通过ProcessEngine来管理的。所以对于ProcessEngine的... 查看详情
第四篇camunda系列-processengine核心对象(代码片段)
一、ProcessEngine ProcessEngine是Camunda流程引擎的核心。我们在流程中的很多具体的处理比如流程部署、流程部署、流程审批等操作都是通过XXXService来处理的。而相关的XXXService都是通过ProcessEngine来管理的。所以对于ProcessEngine的... 查看详情
第四篇camunda系列-processengine核心对象(代码片段)
一、ProcessEngine ProcessEngine是Camunda流程引擎的核心。我们在流程中的很多具体的处理比如流程部署、流程部署、流程审批等操作都是通过XXXService来处理的。而相关的XXXService都是通过ProcessEngine来管理的。所以对于ProcessEngine的... 查看详情
博客目录
...(二)【第三篇】python学习——基础篇之文件操作【第四篇】python学习——基础篇之常用模块【第五篇】python学习——数据库篇之初识mysql【第六篇】python学习——数据库篇之SQL语句【第七篇】python学习&mdash... 查看详情
c++从入门到入土第四篇:类与对象(中篇)
类与对象(中篇)文章目录类与对象(中篇)类的六个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数类的六个默认成员函数构造函数构造函数,是一种特殊的方法。主要用来在创建... 查看详情
数据分析第四篇:聚类分析(划分)(代码片段)
聚类是把一个数据集划分成多个子集的过程,每一个子集称作一个簇(Cluster),聚类使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似,由聚类分析产生的簇的集合称作一个聚类。在相同的数据集上,不同的聚... 查看详情
小刘同学的第四篇博文
时间往往就是这样一下子就飘过去了,晚上7点半到的图书馆,这两个小时一直在处理教程视频的bug。今天只是简单的把昨天字符匹配的结果,在放到一个数组里面了,太久没编程了,连数组和对象的基本用法都不记得了。 查看详情
第四篇:new和delete的基本用法
前言 new和delete是C++中用来动态管理内存分配的运算符,其用法较为灵活。如果你对它们的几种不同用法感到困惑,混淆,那么接着看下去吧。功能一:动态管理单变量/对象空间 &n... 查看详情