DWR传递bean参数并返回Map以及异常处理SimpleCode

公司有个老项目使用了DWR框架技术,配置文件内容很多,抽出代表性的知识点给大家参考,也给自己做个笔记。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>dwrtest</display-name>  

	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

dwr.xml

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.directwebremoting.org/dwr/dwr20.dtd">

<dwr>
	<allow>
		<create creator="new" javascript="DwrTestBean">
			<param name="class" value="testbean.DwrTestBean"></param>
			<include method="myMethod1" />
		</create>

		<convert converter="exception" match="java.lang.Exception">
			<param name="include" value="message" />
		</convert>
		<convert converter="bean" match="pojo.OrderBean"></convert>
	</allow>

	<signatures>
		<![CDATA[
		import java.util.Map;
		import pojo.OrderBean;
		
       	Map<String,Object> DwrTestBean.myMethod1(OrderBean orderBean);
       ]]>
	</signatures>
</dwr>


调用的java class method

package testbean;

import java.util.HashMap;
import java.util.Map;

import pojo.OrderBean;

public class DwrTestBean {
	public Map<String,Object> myMethod1(OrderBean orderBean) throws Exception{
		try {
			System.out.println(orderBean);//打印出来页面的传过来的信息则成功把页面的信息传到后台。
			//int i = 1 / 0;//会报异常
			return new HashMap<String,Object>() {
				/**
			 * 
			 */
				private static final long serialVersionUID = 3043066466825780101L;

				{
					put("successKey","success!!");
				}
			};
		} catch (Exception e) {
			throw new Exception("Failed!!");
		}
	}
}

参数的class

package pojo;

public class OrderBean {
	private String id;
	private String orderCd;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getorderCd() {
		return orderCd;
	}

	public void setorderCd(String orderCd) {
		this.orderCd = orderCd;
	}

	@Override
	public String toString() {
		return "OrderBean---------> [id=" + id + ",orderCd=" + orderCd + "]";
	}

}

前端文件index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/DwrTestBean.js"></script>
</head>

<script type="text/javascript">
	function call() {
		var orderBean = {
			id : "1",orderCd : "20160320001W"
		};
		DwrTestBean.myMethod1(orderBean,{
			errorHandler : function(message) {
			alert(message);
			},callback : function(data) {
				for ( var p in data) {
					alert(data[p]);
					//alert(data["successKey"]);//或者直接获取某个key的value
				}
			}
		});
	}
</script>
<body>
	<input type="button" id="testBtn" onclick="call()" value="submit"></input>
</body>
</html>
写的不好,有问题或者错误的地方请多多包涵~

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...