公司有些不太忙,順便看看,看到了dwr框架的應(yīng)用,屬于ajax的一種解決方案
1,首先創(chuàng)建一個(gè)項(xiàng)目名為Test
2,有兩個(gè)類
package com.test;
public class Message {
public int id;
public String msg;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
------------------------------
package com.test;
import java.util.ArrayList;
import java.util.List;
public class MessageCtrl {
List list=new ArrayList();
public List getMessage(){
for(int i=0;i<6;i++){
Message msg=new Message();
msg.setId(i);
msg.setMsg("測試消息"+i);
list.add(msg);
}
return list;
}
}
-----------------
3,要配置web-inf下的web.xml文件,添加如下內(nèi)容,
<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>
4,在WEB-INF下新建dwr.xml文件
內(nèi)容如下
<allow>
<convert match="com.test.Message" converter="bean"></convert>
<create javascript="messageCtrl" creator="new" >
<param name="class" value="com.test.MessageCtrl"></param>
<include method="getMessage"/>
</create>
</allow>
</dwr>
---------------------
注意:此配置是dwr1.0的配置,如果是2.0的話,紅色部分的兩個(gè)1改為2,那么
<create javascript="messageCtrl" creator="new" >
<param name="class" value="com.test.MessageCtrl"></param>
這部分就可以寫成<create javascript="messageCtrl" creator="new" class= "com.test.MessageCtrl">的形式
---------------------
5,頁面部分,index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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='<%=path%>/dwr/interface/messageCtrl.js'></script>
//--紫色部分和dwr.xml里配置的 javascript="messageCtrl"是一致的<script type='text/javascript' src='<%=path%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=path%>/dwr/util.js'></script>
<script type="text/javascript">
var getid=function(data){
if(data.id%2==0)
return "<font color=red>"+data.id+"</font>";
else
return "<font color=green>"+data.id+"</font>";
}
var getmsg=function(data){
return data.msg;
}
function filltable(data){
DWRUtil.addRows("rst",data,[getid,getmsg]);
}
function Test(){
DWRUtil.removeAllRows("rst");
messageCtrl.getMessage(filltable);//
filltable是回調(diào)函數(shù)
}
</script>
</head>
<body>
This is my JSP page. <br>
<table>
<thead>id</thead><thead>message</thead><thead>button</thead>
<tbody id="rst"></tbody>
</table>
</body>
<input type="button" onclick="Test()">
</html>
------------------------
6,不要忘了導(dǎo)入dwr.jar到WEB-INF/lib下面