作者: beauty9235 鏈接:http://beauty9235.javaeye.com/blog/229619 發表時間: 2008年08月08日
聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!
dwr開發總結 dwr+spring
參考資料
http://wiki.javascud.org/display/dwrcn/Spring+Integration
http://wiki.javascud.org/display/dwrcn/Getting+Started
測試http://{your app}//dwr/
第一步 web.xml
<!--***********************dwr setting***********************-->
<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> <dwr> 第四步 類、網頁 public Integer getId() { public void setId(Integer id) { public String getUsername() { public void setUsername(String username) { public String getPassword() { public void setPassword(String password) {
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!--*********************** spring setting ***********************-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
第二步 dwr.xml
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
<create creator="new" javascript="TestBean">
<param name="class" value="com.photo.test.TestBean"/>
</create>
<create creator="spring" javascript="userAction"> 這里交給spring進行創建
<param name="beanName" value="userAction"/>
</create>
<convert converter="bean" match="com.photo.dao.domain.User"/>返回類型需要反換的bean
</allow>
</dwr>
第三步 applicationContext.xml
<beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close" singleton="true">
....
</bean>
<bean id="userService" class="com.photo.service.UserService">
...
</bean>
<bean id="userAction" class="com.photo.action.UserAction"> 這里是spring創建bean的定義
<property name="userService" ref="userService"/> 將業務層注入
</bean>
User.java 返回的實體
public class User {
Integer id;
String username;
String password;
return id;
}
this.id = id;
}
return username;
}
this.username = username;
}
return password;
}
this.password = password;
}
}
UserAction.java dwr框架調用
public class UserAction {
private UserService userService; //spring依賴注入,實現與持久層通信
public void setUserService(UserService userService) {
this.userService = userService;
}
public Map getUserList(String id){
Map map=new HashMap();
map.put("userList",userService.queryUser(new User())) ;//查詢實體bean User
map.put("id",id);//用于顯示的div id
return map ;
}
}
測試頁面testajax.html
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<title>First Example</title>
<script type='text/javascript' src='/dwr/interface/userAction.js'></script>
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
<script type="text/javascript">
var showUser = function(data) {
var id = data["id"];//取出頁面顯示的id
var userList = data["userList"];//取出頁面顯示的Userlist
if ($(id).style.display == "none") {
$(id).style.display = "block";
var htmlStr = ""; //alert(id);
for (var property in userList) {
var user = userList[property];
htmlStr += user.id + " " + user.username + " " + user.password + "<br>";
}
$(id).innerHTML = htmlStr;
return;
}
$(id).style.display = "none";
}
</script>
</head>
<body>
這是觸發函數
<a style="cursor:hand" id="" onclick="userAction.getUserList('div_show',showUser);">show Users</a> <br>
這塊區域用于顯示
<div id="div_show" style="display:none"></div>
</body>
</html>
本文的討論也很精彩,瀏覽討論>>
JavaEye推薦