Apcoordinator ユーザーズガイド
目次 前ページ次ページ

付録C 旧バージョンとの互換情報(update)

C.2 Webアプリケーション

■ujiall.tld以外のタグライブラリディスクリプタを使用したアプリケーションの修正

INTERSTAGE WEBCOORDINATOR が提供していた以下のタグライブラリディスクリプタを使用したアプリケーションの場合、Webアプリケーション環境定義ファイル(web.xml)の修正と、タグライブラリファイルujiall.tldのコピーが必要です。

修正は以下のように行います。

なお、修正のないソースの再コンパイルは必要ありません。

■UJIタグの新機能を使用する場合の修正

以前のバージョンのApcoordinatorや、INTERSTAGE WEBCOORDINATORで動作するアプリケーションにおいて、UJIタグの新機能を利用する場合は、タグライブラリファイルujiall.tldを新しいものに置き換える必要があります。 Apcoordinatorのタグライブラリファイルujiall.tldを、WebアプリケーションのWEB-INFフォルダに上書きコピーしてください。 このとき、修正のないソースの再コンパイルは必要ありません。

■uji:controlSectionタグを使用している場合の修正

uji:controlSectionタグは推奨されません。 Apcoordinator V5.0L10との互換性のために残されています。 以下の製品が提供するアプリケーションサーバを利用する場合には、旧バージョンのサーブレット実行環境(Tomcat3.1ベースのサーブレット実行環境)でのみ利用することができます。

二重処理を防止するには、uji:formタグのpostOnceアトリビュート、または、HttpControlStateProfileクラスによる二重処理防止機能を使用してください。二重処理防止機能については、高度なセション管理を参照してください。

なお、以下の条件の場合、uji:controlSectionタグを使用した場合と使用しない場合とで、エラーページ表示時の動作に違いがあります。

この場合、エラーページが以下のように表示されます。

なお、JSPは画面表示を行う手段であるため、例外を発生させるような要因は事前にビジネスクラスで検出し、JSP内では例外が発生しないようにJSP、データBean、ビジネスクラスを作成することを推奨します。

■uji:switchタグの動作の違い

J2EE仕様への適合向上と性能向上の目的で、UJIタグの評価方法に変更が加えられました。これにより、INTERSTAGE WEBCOORDINATOR と Apcoordinatorとで以下の場合にuji:switchタグの動作に違いがあります。

  1. uji:switchタグにbeanアトリビュートを指定し、かつ、
  2. uji:caseタグのコンテントでUJIタグを使用し、かつ、
  3. 2のUJIタグでbeanアトリビュートを指定している場合。

上記の場合、uji:caseタグのコンテントにあるUJIタグの評価タイミングに違いがあります。 INTERSTAGE WEBCOORDINATORの場合、uji:caseの条件が評価され、条件が成立した場合にuji:caseのコンテントのUJIタグが評価されます。Apcoordinatorの場合、uji:caseのコンテントにUJIタグが出現した時点で評価されます。

この違いにより発生する影響について説明します。以下の例を参照してください。


<uji:switch bean="body" property="fullMode"> 
  <uji:case cls="true"> 
    <uji:comboBox bean="body" property="teamList" /> 
    ...
  </uji:case>
  <uji:case> 
    ...
  </uji:case>
</uji:case>

プロパティfullModeの値がfalseの場合、cls="true"を指定したuji:caseの条件は成立しません。この場合でも、Apcoordinatorの場合はuji:caseのコンテントにあるuji:comboBoxタグが評価されます。ここで、"body"データBeanのtermListプロパティの値がnullの場合、uji:comboBoxが使用する項目クラスが取得できないため例外が発生します。一方、INTERSTAGE WEBCOORDINATORの場合はuji:comboBoxが評価されないため例外は発生しません。

上記条件に該当する場合、アプリケーションを次のどちらかの方法で修正することにより、Apcoordinatorでも動作します。

■uji:includeタグ、uji:useBeanタグで参照するデータBeanのスコープの違い

サブウィンドウ機能およびフレーム機能対応のため、uji:includeタグ、uji:useBeanタグで使用するデータBeanのスコープが、INTERSTAGE WEBCOORDINATOR V3.0L20と比べて変更になっています。 uji:includeタグ、uji:useBeanタグの動作をINTERSTAGE WEBCOORDINATOR V3.0L20と同じにするには、初期化パラメタuji.includeSessionScopeBeanにfalseを指定してください。初期化パラメタはWebアプリケーション環境定義ファイルに記述します。以下は記述例です。

<?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>factory</param-name>
    <param-value>sample2.Sample2Factory</param-value>
  </context-param>
  <context-param>
    <param-name>uji.includeSessionScopeBean</param-name>
    <param-value>false</param-value>
  </context-param>
  <taglib>
    <taglib-uri>uji-taglib</taglib-uri>
    <taglib-location>/WEB-INF/ujiall.tld</taglib-location>
  </taglib>
</web-app>

■uji.methodリクエストパラメタのデフォルトでの使用可否状態の変更

Apcoordinator V5.0L10、または、INTERSTAGE WEBCOORDINATORで作成したアプリケーションで、isUjiMethodAvailableメソッドをデフォルトのまま使用し、uji.methodリクエストパラメタを使用している場合は、アプリケーションの修正が必要です。 ユーザ定義のアプリケーションクラスを作成し、isUjiMethodAvailableメソッドをオーバライドしてtrueを返却するようにしてください。アプリケーションクラスについては、アプリケーションクラスを参照してください。

■HttpServletRequestから取得されるリクエストパラメタの文字エンコーディング変換の有無の違い

送信データの文字エンコーディング変換をApcoordinatorまたはINTERSTAGE WEBCOORDINATORで処理している場合、 Apcoordinator V5.0L10、または、INTERSTAGE WEBCOORDINATORでは、 javax.servlet.http.HttpServletRequestからリクエストパラメタを取得すると、Apcoordinator または INTERSTAGE WEBCOORDINATORによって文字エンコーディングの変換が実施済みの文字列が得られます。

Apcoordinator V5.0L10またはINTERSTAGE WEBCOORDINATORで作成したアプリケーションで以下の処理を行っている場合には、アプリケーションを修正して、com.fujitsu.uji.util.Parametersクラスからリクエストパラメタを取得してください。

Parametersクラスからは、Apcoordinatorによって文字エンコーディングの変換が行われた文字列が取得されます。 以下は、ビジネスクラスのメソッドおいて、Parametersクラスからリクエストパラメタ"userName"の値を取得する例です。

import com.fujitsu.uji.GenericHandler;
import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.http.HttpDispatchContext;
import com.fujitsu.uji.util.Parameters;

public class SampleHandler extends GenericHandler {
    public void someMethod(DispatchContext context, BodyBean dataBean) {
        Parameters parameters = ((HttpDispatchContext)context).getParameters();
        String value = parameters.getSingleValue("userName");
        ...
    }
}


■アップロード可能なファイルサイズのデフォルトの上限値の変更

セキュリティ強化のため、アップロード可能なファイルサイズのデフォルトの上限値を16Mバイトに設定しています。 Apcoordinator V5.0L10 および INTERSTAGE WEBCOORDINATORでは、デフォルトではサイズの制限はありません。

Apcoordinator V5.0L10またはINTERSTAGE WEBCOORDINATORで作成したアプリケーションで以下に該当する場合は、アプリケーションを修正して、ファイルサイズの上限値を変更する必要があります。

修正は、アプリケーションクラスにgetMimeTransferSizeLimitメソッドをオーバーライドして、アップロード可能なファイルサイズの上限値を返却するようにしてください。上限値の単位はバイトです。 以下は、getMimeTransferSizeLimitメソッドの記述例です。

import com.fujitsu.uji.ApplicationProfile;

public class SampleApplication extends ApplicationProfile {
    public long getMimeTransferSizeLimit() {
        // ファイルサイズの上限値を32Mバイトに指定します。
        return 32*1024*1024;
    }
}

なお、getMimeTransferSizeLimitメソッドで0を返すことによってサイズの制限を無くすことができますが、セキュリティの観点から上限値を設定することを推奨します。

■UJIタグが生成するHTMLの変更

Apcoordinatorのバージョンアップに伴う機能追加や最適化のために、 UJIタグリファレンスに記載の仕様の範囲内で、UJIタグが生成するHTMLパターンが変更されています。 変更内容には、HTMLタグの追加・削除、リクエストパラメタの変更が含まれます。 HTML比較による自動テストツールを利用する場合などは、差異となります。
注意
Apcoordinatorを新しいバージョンに置き換えた場合でもアプリケーションが正常に動作するようにするため、UJIタグリファレンスに記載されている場合を除き、UJIタグが生成するHTMLを仮定した処理は作成しないでください。

■uji:tableViewタグおよびuji:treeViewタグのアトリビュートの修正

uji:tableViewタグおよびuji:treeViewタグの以下の問題を修正しました。
  1. JSPファイル1個の中でuji:tableViewタグまたはuji:treeViewタグを2個以上使用し、2個目以降のタグでアトリビュートの値を省略した場合にデフォルト値が適用されず、以前実行されたタグのアトリビュートで指定した値が適用される場合があります。

    この問題が発生するのは、uji:tableViewタグとuji:treeViewタグの以下のアトリビュートで";"で区切った値を指定し、区切られた値の一部を省略した場合です。
    columnWidth
    columnInputWidth
    columnInputHeight
    indentIcon
    indentIconUseImage
    header
    headerInsets
    headerBackground
    headerForeground
    headerFontStyle
    headerFontWeight
    headerFontSize
    headerTextDecoration
    headerAlignmentHorizontal
    headerAlignmentVertical
    headerRuleWidth
    headerRuleColor
    headerRuleType
    headerNoWrap
    headerUseImage
    dataInsets
    dataBackground
    dataForeground
    dataFontStyle
    dataFontWeight
    dataFontSize
    dataTextDecoration
    dataAlignmentHorizontal
    dataAlignmentVertical
    dataRuleWidth
    dataRuleColor
    dataRuleType
    dataNoWrap
    dataUseImage
    dataStripeBackground
    dataEmpty
    dataEditable
    dataCellType
  2. JSPファイル1個の中でuji:tableViewタグまたはuji:treeViewタグを2個以上使用し、そのタグでmultiRowアトリビュートを使用した場合に、2個目以降のタグでは以前実行されたタグのmultiRowアトリビュートの値が使用される場合があります。
これらの問題は以下の製品で発生します。 本製品では修正済みであるため、以下の製品で問題が発生していたアプリケーションを本製品に移行するとタグの動作が変わります。 移行前と同じ動作とするには、以下のようにJSPを修正してください。 各アトリビュートの指定方法の詳細は、UJIタグリファレンスのuji:tableViewタグ、uji:treeViewタグの解説を参照してください。
目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005