SitesのURLアセンブラについて説明します。これは、URLアセンブリとURL逆アセンブリを管理し、URLの表示の定義に使用できるインタフェースを提供します。この章には次の項が含まれます。SitesのURLの生成や、URLアセンブラが生成するURLの逆アセンブルに使用されます。この項の内容は、次のとおりです。Sitesのリソースへのリンクの構成に使用されます。タグの使用時に指定するタグ属性やネストされた引数タグなどのデータは、URL定義と呼ばれる抽象オブジェクトに変換されます。URL定義はURLアセンブラに渡されます。次に、URLアセンブラはその定義を、返される文字列URLに変換します。Sitesとともにインストールされますが、URLの外観を直接制御するために独自のアセンブラを作成するというオプションがあります。Sitesにアセンブラを登録しておく必要があります。SitesのすべてのURLの作成に使用されます。デフォルトのアセンブラは変更できます。個々のリンク・タグで、このデフォルトのアセンブラの使用をオーバーライドすることもできます。アセンブラ検出と逆アセンブリアセンブラは、アセンブラの作成者が求めるいずれのフォームでもURLを作成できるため、アセンブルされたリンクが要求される場合は、アプリケーション・サーバーによってURLをパラメータにデコードできない場合があります。デコードを実行するには、アセンブラが文字列URLをその定義に逆アセンブルできる必要があります。したがって、アセンブラは可逆性であり、アセンブルしたどのURLも逆アセンブルできます。URLがデフォルトのアセンブラ以外のアセンブラを使用して作成されている場合は、デフォルトのアセンブラはそのURLを逆アセンブルできません。その時点で、次の上位ランクのアセンブラがそのURLの逆アセンブルを試みます。定義の作成に成功した場合は、アセンブラ・エンジンがそのアセンブラを検出したと言われ、定義がパラメータに変換されて処理されます。次の上位ランクのアセンブラがそのURLの逆アセンブルに失敗した場合は、3番目の上位ランクのアセンブラがコールされ、そのURLを逆アセンブルします。このプロセスは、URLが逆アセンブルに成功するまで続行します。このプロセスでは、アセンブラが、アセンブルしたURLを自己のものであると認識し、他のすべてのURLを外部のものであると認識できることが必要です。アセンブラの作成、登録、ランク付けの詳細は、第45.3.1項「アセンブラの作成」および第45.3.2項「アセンブラの登録とランク付け」を参照してください。GETリクエストとPOSTリクエストを使用するURLアセンブリとURL逆アセンブリURLアセンブラは、GETリクエストでのみ呼び出されます。これらはPOSTリクエストでは呼び出されません。GETリクエストでページにアクセスする際、URLアセンブラが呼び出され、URLを逆アセンブルします。Sitesがそのページを開くために必要な適切なパラメータ(c、cid、pagenameなど)を定義に追加することで提供します(定義に存在しない場合)。method=postを使用したフォームなどのリクエストがPOSTされる場合は、URLアセンブラはURLの逆アセンブルには呼び出されません。Sitesがページを開くために必要なパラメータは、postリクエスト自体の一部である必要があります。SitesがページのURLに必要とするパラメータに置換)。Sitesとともにインストールされる2つのアセンブラは、QueryアセンブラとQueryAsPathInfoアセンブラです。この項の内容は、次のとおりです。QueryアセンブラQueryアセンブラは、問合せ文字列でURLを作成します。Sitesに自動的に登録されています。したがって、(デフォルトのアセンブラの変更やリンク・タグにおけるデフォルトのオーバーライドなどを)変更するまで、QueryアセンブラはすべてのURLの生成に使用されます。QueryAsPathInfoアセンブラQueryAsPathInfoアセンブラは問合せ文字列を使用しません。かわりに、QueryAsPathInfoアセンブラは問合せ文字列をエンコードし、サーブレット名の末尾に付加します。このアセンブラの利点は、検索エンジンで索引付けできるURLを作成することです。Sitesに自動的には登録されていません。注意:サンプルURLアセンブラの実装は、FirstSiteIIのサンプル・サイトに付属しています。CDの次の場所に格納されています。APIリファレンスを参照してください。関係のあるクラスは次のとおりです。DefinitonDefiniton.AppTypeDefiniton.ContainerTypeAbstractAssemblerAbstractAssembler.AssemblyContextAbstractAssembler.DisAssemblyContextAssemblerDisAssemblerこれは、コードを1ステップずつ実行できるようにFSIIAssembler.javaでデバッグ環境を設定する際に役立つこともあります。アセンブラの使用この項では、独自のアセンブラの作成と登録の方法について説明します。この項では、デフォルトのアセンブラの使用をオーバーライドするようにリンク・タグを変更する方法も説明します。この項の内容は、次のとおりです。Assemblyモジュールを使用して、独自のアセンブラを作成できます。このオプションにより、URLの外観を直接制御できます。アセンブラを作成するには:com.fatwire.cs.core.uri.Assemblerインタフェースを実装するjavaクラスを記述します。APIリファレンスを参照してください。このクラスを.jarファイルにコンパイルします。ServerのWebアプリケーションにクラスをデプロイします。これは通常、作成した.jarファイルを、WebアプリケーションのWEB-INF/libフォルダにコピーするという意味です。Serverの場合は、resin/webapp/ROOT/WEB-INF/libフォルダにコピーするという意味です。Serverすべての両方で、ServletRequest.propertiesファイルに新規のアセンブラを登録します(手順については、第45.3.2項「アセンブラの登録とランク付け」を参照)。Serverすべてを再起動します。Sitesに登録しておく必要があります。登録は、ショート・フォームに対応するアセンブラ・クラス名をプロパティ・ファイルに列記することで実行されます。登録には、アセンブラの使用順序を示すランキングも含まれます。アセンブラを登録するには:プロパティ・エディタを起動します。ServletRequest.propertiesファイルを開きます。「URIアセンブラ」タブをクリックして、アセンブラのプロパティにアクセスします。登録するアセンブラのclassnameとshortformを指定します。プロパティ名の3番目のエレメントは、アセンブラのランキングを示しています。ランキング0のアセンブラは最上位ランク(およびデフォルト)のアセンブラ、ランキング1のアセンブラは次の上位ランクです。以降も同様になります。デフォルトのアセンブラとして新規のアセンブラを構成する場合は、ランキング1のプロパティにclassnameとshortformの値を入力します。デフォルトのアセンブラとしてQueryAsPathInfoアセンブラを登録するための構文は、次のようになります。アセンブラのプロパティプロパティ名プロパティ値uri.assembler.0.classnamecom.fatwire.cs.core.uri.QueryAsPathInfoAssembleruri.assembler.0.shortformpathinfouri.assembler.1.classnamecom.fatwire.cs.core.uri.QueryAssembleruri.assembler.1.shortform問合せ注意:ランキングを下げた場合でも、Queryアセンブラが常に登録されていることを確認します。Queryアセンブラは、shortformの値をqueryとして登録する必要があります。新規のアセンブラのランキングに応じて、その他のアセンブラのランキングを調整する必要がある場合もあります。すべてのアセンブラがプロパティ・ファイルで正しく構成され、ランク付けされていることを確認します。ない場合は、必要な変更を実行します。「ファイル」→「保存」を選択して変更内容を保存し、プロパティ・エディタを閉じます。Serverごとに、手順1から2を繰り返します。Serverすべてを再起動します。Sitesのリンク・タグは、デフォルトのアセンブラ以外のアセンブラを使用するように変更できます。リンク・タグは属性assemblerを受け入れ、値としてアセンブラのショート・フォームを取ります。個々のリンク・タグで、デフォルトのアセンブラをオーバーライドしてQueryAsPathInfoアセンブラにするための構文は、次のようになります。WebページでのバニティURLリンクの生成アセットに、name引数で渡されたテンプレートのバニティURLが含まれていると、タグはバニティURLを返すようになります。アセットにバニティURLが含まれていない場合、タグはSitesのURLを返します。<render:gettemplateurl>タグは、バニティURLリンクの生成に使用できます。(存在する場合)を返すようになります。このような場合に既存のリンクにアクセスすると(たとえば、ブックマークから)、それ以降のすべてのURLはバニティURLになります。gettemplateurlに渡す必要があります。hostparamの値は、WebRootのhostname属性と一致する必要があります。これを使用すると、別のWebサイトや、同一Webサイト内のサブドメインへのリンクを生成できます。reserved.法律上の注意点ライブラリ。