[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
■applicationContext.xmlの設定
<!-- ====================================================== -->
<!-- Ajax設定 -->
<!-- ====================================================== -->
<!-- サービス定義 -->
<bean id="messageService" class="jp.co.nadeshiko.sample.MessageService">
<dwr:remote javascript="MessageService">
<!-- executeメソッド公開 -->
<dwr:include method="execute" />
</dwr:remote>
</bean>
<!-- JavaScriptへ渡すクラス定義 -->
<dwr:configuration>
<dwr:convert type="bean" class="jp.co.nadeshiko.sample.MessageBean" />
</dwr:configuration>
■Web.xml
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
■サンプルのJSP
<%@ page contentType="text/html; charset=Shift_JIS"
language="java" pageEncoding="Shift_JIS"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html:html>
<head>
<title>サンプル</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/MessageService.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
function show() {
var message = DWRUtil.getValue("message");
// コールバックが不要の場合は
//MessageService.execute(message);
// コールバックしたい場合
MessageService.execute(message, callback);
}
function callback(resultVal){
DWRUtil.setValue("result", resultVal.message);
}
// ロード中のメッセージを表示する
function init() {
DWRUtil.useLoadingMessage("読み込み中");
}
//-->
</script>
</head>
<body onload="init();">
<p>何か入力してください: <input type="text" id="message" />
<input type="button" value="表示" onclick="show()" /><br/>
メッセージ: <span id="result" style="background:#CCFF99; padding:4px;"></span>
</p>
</body>
</html:html>
■画面から使用されるJavaのサービス
package jp.co.nadeshiko.sample;
public class MessageService {
private String massage;
public void setMassage(String massage) {
this.massage = massage;
}
public MessageBean execute(String value) {
MessageBean bean = new MessageBean();
bean.setMessage(value);
return bean;
}
}
■画面で使用されるJavaのBean
package jp.co.nadeshiko.sample;
public class MessageBean {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String value) {
message = value;
}
}