ルーティング¶
スクリプト開発モデル用ルーティングテーブル¶
設定ファイルの例を用いてスクリプト開発モデル用ルーティングテーブルが行う役割について説明します。
URLへのスクリプト開発モデルのプログラムの割り当て¶
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo を スクリプト開発モデル のパス business/foo に割り当てるルーティングテーブルを作成します。
プレゼンテーション・ページ
%CONTEXT_PATH%/WEB-INF/jssp/src/business/foo.html にファイルを作成します。ファイルを以下の内容にします。This is foo.
ファンクション・コンテナ
処理が存在しないため、ファンクション・コンテナは作成しません。ルーティングテーブル
%CONTEXT_PATH%/WEB-INF/conf/routing-jssp-config/routing-programming-guide-foo.xml にファイルを作成します。ファイルを以下の内容にします。<?xml version="1.0" encoding="UTF-8"?> <routing-jssp-config xmlns="http://www.intra-mart.jp/router/routing-jssp-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd"> <authz-default mapper="welcome-all" /> <file-mapping path="/app/foo" page="business/foo" /> </routing-jssp-config>
file-mapping要素でURLと スクリプト開発モデル のプログラムのマッピングを行います。path属性にURLのパス /app/foo 、page属性に スクリプト開発モデル のパス business/foo を指定します。
設定ファイルを反映させるために、アプリケーションサーバを再起動します。
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/foo へアクセスします
ページに以下が表示されますThis is foo.
コラム
この項目では、下記のポイントを確認しました。
- URLへの スクリプト開発モデル のプログラムの割り当てはfile-mapping要素を用いて行う。
- file-mapping要素のpath属性にURLのパス、page属性に スクリプト開発モデル のパスを記述する。
PathVariables¶
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/bar/{id} を スクリプト開発モデル のパス business/bar に割り当てるルーティングテーブルを作成します。
プレゼンテーション・ページ
%CONTEXT_PATH%/WEB-INF/jssp/src/business/bar.html にファイルを作成します。ファイルを以下の内容にします。"id" is <imart type="string" value=id />.
ファンクション・コンテナ
%CONTEXT_PATH%/WEB-INF/jssp/src/business/bar.js にファイルを作成します。ファイルを以下の内容にします。var id; function init(request) { id = request.id; }
ルーティングテーブル
%CONTEXT_PATH%/WEB-INF/conf/routing-jssp-config/routing-programming-guide-bar.xml にファイルを作成します。ファイルを以下の内容にします。<?xml version="1.0" encoding="UTF-8"?> <routing-jssp-config xmlns="http://www.intra-mart.jp/router/routing-jssp-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd"> <authz-default mapper="welcome-all" /> <file-mapping path="/app/bar/{id}" page="business/bar" /> </routing-jssp-config>
path属性の中に{[識別子]}と記述することでURLの途中の値がパラメータとして引き渡されます。
設定ファイルを反映させるために、アプリケーションサーバを再起動します。
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/bar/aoyagi へアクセスします
ページに以下が表示されます"id" is aoyagi.
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/bar/ueda へアクセスします
ページに以下が表示されます"id" is ueda.
コラム
この項目では、下記のポイントを確認しました。
- file-mapping要素のpath属性に{[識別子]}と記述することでURLの途中の値がリクエスト・パラメータとして扱える。
認可¶
<?xml version="1.0" encoding="UTF-8"?> <routing-jssp-config xmlns="http://www.intra-mart.jp/router/routing-jssp-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd"> <authz-default mapper="welcome-all" /> <file-mapping path="/app/foo" page="business/foo" /> <file-mapping path="/app/baz" page="business/baz"> <authz uri="service://app/baz" action="execute" /> </file-mapping> </routing-jssp-config>authz-default要素にはwelcome-allリソースマッパーが指定されています。この認可リソースマッパーは開発中に使用するものであり、アプリケーションリリース時には適したuriとactionまたはmapperを指定することを強く推奨します。/app/foo へのアクセスの場合、file-mapping要素内にauthz要素が存在しないため、デフォルト認可設定であるwelcome-allマッパーが認可設定として利用されます。/app/baz へのアクセスの場合、file-mapping要素内にauthz要素が存在するため、uriがservice://app/baz、actionがexecuteである認可設定として扱われます。authz-default要素、authz要素共に省略可能ですが、file-mappingに対して有効な認可設定が指定されていない場合は省略できません。メニュー項目はアクセス先のURLに対して権限があるもののみ表示されます。詳細については 認可 を参照してくださいコラム
この項目では、下記のポイントを確認しました。
authz-default要素、authz要素を用いて、認可設定を行えます。 URLに対して、認可設定が行われていない場合は省略できません。
クライアントタイプ¶
http://<HOST>:<PORT>/<CONTEXT_PATH>/app/qux スマートフォンからアクセスされた場合に、 スクリプト開発モデル のパス business/qux_sp に割り当てその他の端末でアクセスされた場合に business/qux に割り当てるルーティングテーブルを作成します。
スマートフォン用プレゼンテーション・ページ
%CONTEXT_PATH%/WEB-INF/jssp/src/business/qux_sp.html にファイルを作成します。ファイルを以下の内容にします。Smartphone.
スマートフォン以外からアクセス時のプレゼンテーション・ページの作成
%CONTEXT_PATH%/WEB-INF/jssp/src/business/qux.html にファイルを作成します。ファイルを以下の内容にします。Not smartphone.
ファンクション・コンテナ
処理が存在しないため、ファンクション・コンテナは作成しません。ルーティングテーブル
%CONTEXT_PATH%/WEB-INF/conf/routing-jssp-config/routing-programming-guide-qux.xml にファイルを作成します。ファイルを以下の内容にします。<?xml version="1.0" encoding="UTF-8"?> <routing-jssp-config xmlns="http://www.intra-mart.jp/router/routing-jssp-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/router/routing-jssp-config routing-jssp-config.xsd"> <authz-default mapper="welcome-all" /> <file-mapping path="/app/qux" page="business/qux" /> <file-mapping path="/app/qux" page="business/qux_sp" client-type="sp" /> </routing-jssp-config>
file-mapping要素でclient-type属性を指定することで、指定のクライアントタイプでのマッピング設定が行えます。
設定ファイルを反映させるために、アプリケーションサーバを再起動します。
PCのブラウザで http://<HOST>:<PORT>/<CONTEXT_PATH>/app/qux へアクセスします
ページに以下が表示されますNot smartphone.
スマートフォンのブラウザで http://<HOST>:<PORT>/<CONTEXT_PATH>/app/qux へアクセスします
ページに以下が表示されますSmartphone.
- サーバへアクセスできるスマートフォン端末がない場合は http://<HOST>:<PORT>/<CONTEXT_PATH>/menu/sitemap アクセス後の右上のユーティリティメニューの「スマートフォン版へ」を選択後に、URLにアクセスしてください。
コラム
この項目では、下記のポイントを確認しました。
- file-mapping要素にclient-type属性を指定することで、特定のクライアントタイプでの スクリプト開発モデル のプログラムを指定できます。