アットウィキロゴ

Struts Tips

strutsで出来ること

validate機能
タイル機能
トランザクショントークン機能
exceptionに応じた画面遷移機能

struts1.3系のtaglib

taglibは全てstruts-taglib.jarに格納されている。jar内に各.tldファイルが格納されている。
使用する場合は、tldファイル内の<uri>タグで指定されているuriを指定する。

起動時にjava.lang.UnsupportedClassVersionError: Bad version number in .class file が発生

TOMCATのバージョンとJavaコンパイラのバージョンを合わせる。

文字化け

・Strutsの場合

アクション・フォームBeanでは、ブラウザからのリクエストデータを格納する際、どのエンコード方式を使用しているかの情報を得る(setCharacterEncodingメソッドなど)前にリクエストデータを格納するため、日本語を扱う際に文字化けが発生する。

アクション・フォームBeanで日本語処理を行う際は、Servlet2.3から導入されたフィルタ機能を利用します。フィルタ機能でリクエストデータのエンコード処理を行います。フィルタ機能が使えない場合は、アクション・フォームBeanにデータが格納される前に呼び出されるresetメソッド内でsetCharacterEncodingメソッドを呼び出す、アクセスメソッド内でエンコード処理を行うなどの対応を行います。

/WEB-INF/src/filtersパッケージを作成し、下記ソースを格納する。
SetCharacterEncodingFilter.java

web.xmlにフィルタ処理の記述を追加する。
【web.xml】
<filter>
 <filter-name>EncodeFilter</filter-name>
  <filter-class>filters.SetCharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>Shift_JIS</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>EncodeFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

リソースプロパティの文字化け


文字化け(JSPの場合)

@pageディレクティブのcontentTypeには出力する文字コードを指定。pageEncodingにはJSPファイルの文字コード(JSPファイルをどの文字コードとして読み込むか)を指定。

パラメータの文字コードを指定するには・・
<% request.setCharacterEncoding("Windows-31J"); %>

文字化け(サーブレットの場合)

パラメータの文字コードを指定するには・・
response.setCharacterEncoding("Windows-31J");

ActionErrorとActionMessage

struts1.3ではActionErrorsにActionMessageを入れる。古いstrutsではActionErrorでないとExceptionが出る場合がある。

validate()が呼ばれるタイミング

アクションサーブレットがフォームから実際にデータを集めた後、対応するアクションを呼び出す前に呼び出される。
最終更新:2011年08月03日 16:30
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。