エンジニアの心Struts1.3.5のタグライブラリ 設定 TLDファイルはstruts-taglib-1.3.5.jarに入っているので、web.xmlにタグリブの指定はいらなくなったみたい。 なんかJSPでの書き方(Standard Syntax)がかわってた。 <%@ taglib uri=""prefix="bean" %><%@ taglib uri=""pref...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でstrust-config.xmlの分割する 単純にファイルを分割する <servlet><servlet-name>action</servlet-name><servlet-class> org.apache.struts.action.ActionServlet </servlet-class><in...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のstruts-config.xml XML宣言 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"""> data-s...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5を使ったアプリケーションの初期化 以下の2種類の方法がある。 ServletContextListenerを使うStrutsのPluginを使う PluginだとStrutsに依存した処理ができる。2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のvalidation.xml validator-rules.xml jarに含まれたらしい。validatorの定義が書かれている。 validation.xml Validatorの設定ファイル。 XML宣言 <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のRequiredValidator 必須チェック。空白だけをいれるとこのチェックにひっかかる。 サンプル <field property="loginID" depends="required"><msg name="required" key="errors.required" /><arg name="required" key="ログインID" re...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のMaskValidator requiredとmaskだけ使えばほかいらないんじゃないかな?と思うわけだ。 サンプル <field property="loginID" depends="required,mask"><msg name="required" key="errors.required" /><msg name="mask" key=...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のIntRangeValidator 範囲内のint値。 サンプル <field property="loginID" depends="intRange"><msg name="intRange" key="errors.intrange" /><arg name="intRange" key="年齢" resource="false" /> ...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でValidatorを使う StrutsではValidate機能が付いている。 Validatorは以下のチェックができる。 クライアントサイドのエラーチェックサーバーサイドのエラーチェック クライアントサイドではJavascriptを用いてチェックする。クライアントサイドJavascriptチェックを使うと、サーバ間通信が減るので、パフォーマンスを抑えることができる。(多少だと思うけ...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でTilesを使ってみる 左にメニューがあって、右にコンテンツ・・・というようなレイアウトを使う場合、tilesを使えば、画面の構成要素の定義ができる。また、継承を使って、画面の一部分だけ変更する・・・という処理も可能。 インストール pluginとしてstruts-config.xmlに記述する。 <plug-in className="org.apache...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のログ Struts自体がcommons-loggingを使っている。これを制御するためには設定ファイルを用意してやる必要がある。デフォルトでは設定ファイルがないので、Webサーバの起動時にWARNが出力される。多分、クラスパスの通っている場所にcommons-logging.propertiesをおくとかでいけるはず。 尚、開発時はStrutのログを出力したほうが...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でLookupDispatchActionを使ったディスパッチ DispatchActionとは異なり、メッセージリソースのキーからディスパッチを行ってくれる。 使い方 LookupDispatchActionを継承したActionクラスを作成。getKeyMethodMapをオーバーライドする。 public class LoginAction extends LookupDispatchAction { pri...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でDispatchActionを使ったディスパッチ 「org.apache.struts.actions.DispatchAction」を使う。 このクラスの特徴は、struts-config.xmlにディスパッチ情報を記述できること。これによって、すっきりーすっきりーする。 ActionはActionServletとビジネスロジックとをつなぐアダプタクラス。Actionクラスごとにビジネスロジックをわける...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でActionの自力ディスパッチ Webアプリケーションは1ページに1機能というのが一般的だと思うが、その1機能の中に複数の処理があることが多い。 例えば、一覧画面にデータのいちらんを表示して、修正ボタンと削除ボタンをデータごとに表示する。修正ボタンが押された場合は、修正画面に移動してFormに修正するデータをセットし、削除ボタンが押された場合は、そのデータ自体を削除したい。 こういうことを...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のActionFormクラス ctionFormのresetでリセットできる。ただ、これはチェックボックスの初期化問題などに使うメソッドとして推奨されている。 参考>2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でリクエストをフォワードする 画面遷移だけを実現する方法。 Strutsには遷移する(フォワードする)だけのクラスが存在していた。それがForwardActionクラス。 struts-config.xmlのforward属性を使う場合 以下のようにActionを定義してあげる。 <action path="/tologin" forward="/login.jsp" /> ...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5のActionクラス ActionはHTTPリクエストの内容とそのリクエストを処理するために実行されるべきビジネスロジックとの間のアダプタクラスです。 コントローラ(ActionServlet)はリクエストに適切なActionを選択して(必要に応じて)インスタンスを生成し、performメソッドを呼び出します。 コントローラは同時に発生した複数のリクエストに対して同一のインスタン...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5インストール Struts1.3.5Javadoc インストール 「」からダウンロード。libフォルダのjarファイルを /WEB-INF/lib などにコピー。web.xmlに以下を記述。 <servlet><servlet-name>action</servlet-name><servlet-class> ...2008.04.07エンジニアの心
エンジニアの心Struts1.3.5でのシリアライズ Strutsで注意したいシリアライズについて。 Sessionに入れたオブジェクトはメモリからディスクに書き出される可能性がある。StrutsならばActionFormを継承して作ったクラスが該当する。よって、Serializableをimplementsしたほうがよい。 参考:ユーファームさんのコーディングの落とし穴 ActionForm...2008.04.07エンジニアの心