Spring 2 DWR 2を結合したユーザ登録の例
1.ソフトウェアバージョン
Spring-Version:2.0.7 http://www.springframework.org/
DWR-version:2.0.2 http://getahead.org/dwr
IDE:Eclipse 3.2+MyEclipse 6.0
2.新規プロジェクト:dwrsping
スプリングに対するサポートを入れて、dwrのjarカバンdwr.jarをWEB-INF\libにコピーします.
必要なjarパッケージは以下の通りです.
3.web.xmlを編集してspringとdwrに対するサポートを追加します.
org.directwebreement.spring.DwrSpring Servletこのクラスはdwrがspringを統合するために提供するservletです.これを加入してから、dwrの配置はspringのプロファイルappication Contact.xmlに書き込むことができます.dwr.xmlは省略されました.
4.jspページindex.jspを編集する
UserAjaxHelper.jsとは、aplication Contactext.xmlファイルで構成されるAJAXの操作の種類です.
呼び出しの書き方は:
5.springのプロファイルを編集し、dwrの構成を追加します.
dwrの定義を追加するには
xmlns:dwr=http://www.directwebremoting.org/schema/spring-dwr
まだありますhttp://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd
すべてのdwrの定義はdwrのプレフィックスを追加します.stringタイプのusernameに入るだけですので、convertは設定されていません.
6.dwr呼び出しの操作類UserAjaxHelper
dwrで呼び出す方法が見られます.
8.この例のプログラム運転結果
Spring-Version:2.0.7 http://www.springframework.org/
DWR-version:2.0.2 http://getahead.org/dwr
IDE:Eclipse 3.2+MyEclipse 6.0
2.新規プロジェクト:dwrsping
スプリングに対するサポートを入れて、dwrのjarカバンdwr.jarをWEB-INF\libにコピーします.
必要なjarパッケージは以下の通りです.
3.web.xmlを編集してspringとdwrに対するサポートを追加します.
<!-- DWR servlet -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.spring.DwrSpringServlet
</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>
<!-- Spring -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
説明:org.directwebreement.spring.DwrSpring Servletこのクラスはdwrがspringを統合するために提供するservletです.これを加入してから、dwrの配置はspringのプロファイルappication Contact.xmlに書き込むことができます.dwr.xmlは省略されました.
4.jspページindex.jspを編集する
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>DWR+SPRING</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/UserAjaxHelper.js"></script>
<script language="javascript">
function checkUser(widget){
var username = widget.value;
// username checkUsername , showUsermsg js
UserAjaxHelper.checkUsername(username,showUsermsg);
}
//showUsermsg ,data checkUsername
var showUsermsg = function(data){
if(data){
DWRUtil.setValue("usermsg","<font color='red'> </font>", { escapeHtml:false });
}
else{
DWRUtil.setValue("usermsg","<font color='green'> </font>", { escapeHtml:false });
}
}
</script>
</head>
<body onload='dwr.util.useLoadingMessage()'>
<form action="#">
<table border="0">
<tr><td> :</td><td><input type="text" name="username" id="username" value="" onkeyup="checkUser(this);"/><span id="usermsg"></span></td></tr>
<tr><td> :</td><td><input type="password" name="userpwd" id="userpwd" value=""></td></tr>
<tr><td><input type="submit" value=" "/></td><td><input type="reset" value=" "/></td></tr>
</table>
</form>
</body>
</html>
説明:<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
この二つはdwrがデフォルトで呼び出したいjsファイルです.必ずファイルに記入してください.UserAjaxHelper.jsとは、aplication Contactext.xmlファイルで構成されるAJAXの操作の種類です.
呼び出しの書き方は:
UserAjaxHelper.checkUsername(username,showUsermsg);
var showUsermsg = function(data){......}
時々書きますUserAjaxHelper.checkUsername(username,showUsermsg());
function showUsermsg (data){......}
これで問題が発生します.showUsermsgは戻り値dataが得られなくなります.なぜですか?5.springのプロファイルを編集し、dwrの構成を追加します.
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">
<!-- DWR -->
<dwr:configuration></dwr:configuration><!-- configuration -->
<dwr:controller id="dwrController" debug="true" />
<!-- DWR -->
<!-- spring bean -->
<bean id="userService" class="test.bcndyl.service.impl.UserServiceImpl">
</bean>
<bean id="userAjaxHelper" class="test.bcndyl.dwr.UserAjaxHelper">
<property name="userService" ref="userService" />
<!-- js -->
<dwr:remote javascript="UserAjaxHelper"></dwr:remote>
</bean>
<!-- end spring bean -->
</beans>
説明:dwrの定義を追加するには
xmlns:dwr=http://www.directwebremoting.org/schema/spring-dwr
まだありますhttp://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd
すべてのdwrの定義はdwrのプレフィックスを追加します.stringタイプのusernameに入るだけですので、convertは設定されていません.
6.dwr呼び出しの操作類UserAjaxHelper
package test.bcndyl.dwr;
import test.bcndyl.service.IUserService;
public class UserAjaxHelper {
private IUserService userService;
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public boolean checkUsername(String username){
boolean returnVal = this.getUserService().isUserExist(username);
return returnVal;
}
}
ユーザー操作のserviceインターフェースIUserServicepackage test.bcndyl.service;
public interface IUserService {
//
public boolean isUserExist(String username);
}
ユーザー操作のserviceインターフェースIUserServiceの実現タイプUserServiceImplpackage test.bcndyl.service.impl;
import test.bcndyl.service.IUserService;
public class UserServiceImpl implements IUserService {
@Override
public boolean isUserExist(String username) {
/*
*
* Hibernate
*
* true-- ,false-
*/
// , hello, hello true, hello false
if("hello".equals(username))
return true;
return false;
}
}
7.dwrが正しく動作しているかを検出する方法は、ブラウザのアドレスバーに入力できます.http://localhost:8080/appName/dwr dwrで呼び出す方法が見られます.
8.この例のプログラム運転結果