Apcoordinator ユーザーズガイド
|
目次
|
19.2.2 サーバアプリケーションの作成
ここでは、Flash連携特有の手順のみを説明します。各ファイルの概要や作成方法は通常のWebcoordinatorアプリケーションと同様です。
Apcoordinatorアプリケーションの主な構成要素を参照してください。
- サーブレットクラスの作成
- サーブレットクラスは
FlashServlet
クラスを継承して作成します。 メソッドを追加する必要はありません。
public class MainServlet extends com.fujitsu.uji.http.FlashServlet {
public MainServlet() {
super();
}
}
|
- Webアプリケーション環境定義ファイル (web.xml) の設定
- web.xmlでは、次の2点を設定します。
- サーブレットを呼び出せるように"
servlet
"タグと"servlet-mapping
"タグを記述します。
- ビジネスクラスから返却するオブジェクトのデフォルトの型を"
uji.flash.returnValue
"初期化パラメタで指定します。
この指定によって、アプリケーション例外が発生した場合のクライアントへの通知方法が異なります。デフォルトは"JSP
"に設定されています。詳細はアプリケーション例外が発生した場合のクライアントへの通知方法を参照してください。
以下の例はサーブレットクラスがflash.MainServlet
の場合で、ビジネスクラスから返却するオブジェクトのデフォルトの型をデータBeanの場合です。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
<context-param>
<param-name>uji.flash.returnValue</param-name>
<param-value>DataBean</param-value>
</context-param>
...
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>flash.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/MainServlet</url-pattern>
</servlet-mapping>
...
</web-app>
|
- データBeanの作成
- データBeanは通常のWebcoordinatorアプリケーションと同様です。XMLデータBeanを使用する場合はデータBeanを作成する必要はありません。
- ビジネスクラスの作成
- ビジネスクラス内のメソッドでの返却値は、Flashで使用されたActionScriptのメソッドによって異なります。
LoadVars.sendAndLoad
またはXML.sendAndLoad
を使用している場合は、データBeanまたはXMLデータBeanを返却します。
データBeanを返却する例
public Object doSomething(com.fujitsu.uji.DispatchContext context, com.fujitsu.uji.DataBean dataBean){
// ビジネスロジックを記述
return MyDataBean;
}
|
データBeanを返却する場合、値として"&"や"="を使用することはできません。
LoadVars.send
またはXML.send
を使用している場合は、JSP名かHTMLファイル名を返却します。ファイル名には任意の文字列を指定することができます。
JSP名を返却する場合は、DispatchContext
クラスのsetResponseBean
メソッドを使用してJSP内で使用するデータBeanを設定することが可能です。
JSP名を返却する例
public Object doSomething(com.fujitsu.uji.DispatchContext context, com.fujitsu.uji.DataBean dataBean){
// ビジネスロジックを記述
context.setResponseBean("body", dataBean);
return "nextPage.jsp";
}
|
また、"uji.flash.returnValue
"初期化パラメタで指定された値と異なるオブジェクトを返却する場合は、DispatchContext
オブジェクトをFlashDispatchContext
クラスにキャストし、setReturnValue
メソッドで必ず指定してください。下記はJSPを返却する場合の指定例です。
public Object doSomething(com.fujitsu.uji.DispatchContext context, com.fujitsu.uji.DataBean dataBean){
((FlashDispatchContext)context).setReturnValue(FlashDispatchContext.RETURN_JSP);
context.setResponseBean("body", dataBean);
return "nextPage.jsp";
}
|
- コマンドマップの作成
- コマンドマップは通常のWebcoordinatorアプリケーションと同様です。以下に例を示します。
LoadVars
オブジェクトを使用する場合
mypkg.MyDataBean;myverb=mypkg.MyHandler.doVerb
|
XML
オブジェクトを使用する場合(コマンドは指定できません)
/root;=mypkg.MyHandler.doVerbXml
|
サーバアプリケーションで例外が発生した場合、クライアントへは次の2通りの通知方法があります。
uji_flashException
によるFlashへの通知
- 画面遷移が発生する場合のエラーページによる通知
前者はsendAndLoad
メソッドを使用して通信している場合に用いるもので、後者はsend
メソッドを利用して通信している場合に用いるものです。
上記の2つの通知方法は、uji.flash.returnValue
初期化パラメタで指定する方法と、FlashDispatchContext
クラスのsetReturnValue
メソッドで指定する方法があります。
uji.flash.returnValue
初期化パラメタによる指定
uji.flash.returnValue
初期化パラメタによって指定された値は、アプリケーションで共通の設定となります。uji_flashException
による通知を行う場合は"DataBean
"を、エラーページによる通知を行う場合は"JSP
"を指定してください。省略した場合は"JSP
"となります。
setReturnValue
メソッドによる指定
setReturnValue
メソッドで指定することで、リクエスト毎の指定が可能です。setReturnValue
メソッドによって指定された値は"uji.flash.returnValue
"初期化パラメタによる指定より優先度が高くなります。ただし、setReturnValue
メソッドが呼ばれる前に例外が発生した場合は"uji.flash.returnValue
"初期化パラメタの値が有効になります。エラーページによる通知を行う場合は"FlashDispatchContext.RETURN_JSP
"を、uji_flashException
による通知を行う場合は"FlashDispatchContext.RETURN_DATABEAN
"を使用してください。メソッドを使用しない場合は"uji.flash.returnValue
"初期化パラメタによる指定が有効となります。
All Rights Reserved, Copyright © 富士通株式会社 2000-2005