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.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