Struts

本: Struts Survival Guide[ObjectSource.com]

ベーシックをカバーしてるのはもちろんですが、"Learn Best Practices and Sterategies in Struts"の部分が今までの本よりいいかなぁと思います。 Chapter4: All about Actionsが無料ダウンロード[ObjectSource.com]できます。 旦那がE-book買ってくれました…

DynaValidatorForm と DynaValidatorActionForm

DynaValidatorFormがformの名前によってバリデーションを行うのに対し、DynaValidatorActionFormはアクションマッピングのパスによってバリデーションをします。 formを再利用したい時などはDynaValidatorActionFormを使えば、マッピングによってバリデーシ…

DisplayTag: paging, sortingは使えない。

昨日、"DisplayTagは便利"って書いたんですけど、日本語でテストしてみたら上手く動作しませんでした。 表示するデータが多い時、1ページに10行だけ表示して、googleの検索結果みたいに"次へ"とか"前へ"とか、1 2 ...とか数字が表示されるんですが、display…

View: タグ[DisplayTag.org]

そういえば書いてなかったので、足しときます。 ディスプレイタグ。 データなんかのテーブルを簡単に表示してくれます。 並び替えとか、1ページに表示する行数の指定とか、リンクとか、その他いろんなことができます。かなり使えるタグです。 ドキュメンテー…

JSFはまだまだ?

JSFとStrutsとTilesと普通に動いてたんです。 でも、日本語が文字化けするんです。 なんだかエンコーディングがおかしいんです。 struts-facesのせいだ、って旦那がかなりいらついてます。 何でもCraigが9月の時点で"これからのStrutsアプリケーションにはJ…

AppFuse 1.3 Released[RaibleDesigns.com]

ちょっと前にAppFuse 1.3がリリースされてます。 それよりね、Struts Resume[RaibleDesigns.com]で使われてる"LabelTag"がいいなぁって思うんです。 もともとはErik Hatcherさん作。 フォームなんかでバリデーションがfailの時に、自動でそれを示してくれる…

フォーム一つ+複数のページ

何のことか分からない人へ: wizard-like page、もしくはmulti-pagesのこと。(最初からそう書け?) もう少し説明してみると、フォームが複数のページにまたがってて、ステップ1が終わったら"次へ"ボタンを押してステップ2にいって…て、あれのことだ。方法はい…

Action Chaining vs. Action Relay

Action Chainingとは、あるアクションから別のアクションにフォワードすることを言うわけだが、デザイン的によくないとされている。 Action Chainingの例: <action path="/someAction" type="actions.SomeAction" name="someForm" scope="request"> <forward name="nextAction" path="nextAction.do" /> </action>一つのプロセスを2つ以上のアクションにまたいで処理するということは、リクエスト/レスポンスを2…

DynaActionForm: form-beanのインヘリタンス

Adding Spice to Struts[javaboutique.internet.com]をみて、これは便利!と思って早速使ってみることに。 簡単に説明すると、DynaActionFormでインヘリタンスのメカニズムを作ろう、ということなのだ。 例えば、contactFormとcompanyContactFormがあったとす…

MappingDispatchAction[jakarta.apache.org]

Struts1.2からできたMappingDispatchAction。 今までのDispatchActionと違ってstruts-config.xmlでのマッピングがそれぞれのアクションごとで別々なので、バリデーションを使い分けたりすることができるので便利。 DispatchActionのマッピング例:

日本語とアップロードのmultipart/form-data

ファイルアップロードでは<html:form action="/path/to/action" enctype="multipart/form-data">と、enctypeをセットするが、これをすると日本語のエンコーディングがおかしくなって、LookupDispatchActionのリバースルックアップができなくなる。 LookupDispatchActionを使っていない場合でも、他の日本語のエントリーが文字化</html:form>…

フォームの2度押し防止

フォームの送信ボタンを1度押した後に、ブラウザの戻るボタンでフォームページに戻ってまた送信を押す、2重送信(と言うんだろうか…)はウェブアプリケーションではよくある問題だ。 Strutsではsynchronizing tokenを使って二重送信を防止する。 簡単な例で説…

TilesとLookupDispatchActionで日本語のキーを使う

前に"LookupDispatchActionで日本語のkeyを使う時"と言うのを書いたが、Tilesを使ってアプリケーションを書いている場合、RequestProcessorではなくTilesRequestProcessorのサブクラスを作らなければならない。 import org.apache.struts.tiles.TilesRequest…

Tilesテンプレートを複数のモジュールで使う時のCSSファイルの設定

どのモジュールでTilesテンプレートを使ってもCSSファイルがあるパスが正しく書き換えられるようにする必要がある。 <html:rewrite page='/css/stylesheet.css'/>の代わりにrequest.getContextPath()を使おう。 <link rel="stylesheet" type="text/css" href="/css/stylesheet.css">または、CSSファイルをstruts-config.xmlのglobal-forwardsに定義しておく方法もある。 <global-forwards> </global-forwards></link></html:rewrite>

Test-Driven Development Series Part I: Overview[TheServerSide.com]

DispatchActionクラスのメソッドについてのメモ

DispatchActionはJava reflectionを使ってメソッドを呼び出すため、メソッドはpublicでなければなりません*1。 *1:DispatchActionが呼び出すメソッドに関してのみです。 他のヘルパーメソッドなどはprivateでもprotectedでもかまいません。

Struts初心者によくあるバグ

Struts初心者がアクションクラスを書くとき、execute()メソッドに間違いがある(例えば、スペル間違いやシグニチャーを正しくインプリメントしていない、etc.)というバグがときどきあるようです*1。 この場合もちろんメソッドは呼び出されませんが、悪いこと…

アクションはMVCのC? それとも M?

Strutsのイントロダクションでは、必ずMVC/モデル2アーキテクチャについての説明がでてきます。 そして、ビューにはJSPやJSTLが使われ、コントローラはStrutsフレームワークのconfigファイルなどでXML形式で定義され、モデル部分のデータベースはPostgreSQL…

ActionFormの基本

ActionFormクラスのreset()とvalidate()メソッドはディフォルトでは何も行われません。 →自分でインプリメントしなければなりません。 例えば、複数のチェックボックスがあり、ディフォルトでいくつかをセットしておく場合など、reset()メソッドの出番です*1…

Struts-Faces Integration Library, Update

JavaServer Facesの新しいベータリリースと動作するようにアップデートされたStruts-Facesインテグレーション・ライブラリのナイトリービルドがダウンロードできます。 http://cvs.apache.org/builds/jakarta-struts/nightly/struts-faces/ ソースコードはこ…

.NET vs. Struts

ASP.NET and Struts: Web Application Architectures[msdn.microsoft.com] マイクロソフトの.NETとStrutsを比べた(?!)記事です。 書いた人がマイクロソフト側の方だからなんでしょう、かなりかたよってます。 プラットフォームの概要では、どうも無理にJ2EE…

forward vs. redirect

前に書いたforward vs. redirectの付けたしです。 redirectは、ウェブコンテナーがウェブブラウザーからHTTPリクエストをうけレスポンスを返し、その後ブラウザーが再び新しいリクエストを送り、レスポンスをうけとる、といったように2往復するわけです。 そ…

Integrating Struts,Tiles, and JavaServer Faces[IBM.com] 旦那は9月の時点ですでに読んでたらしいですが、私はこれから読みます。

アプリケーションのモジュール化

Struts1.1では、大きなアプリケーションを複数のサブアプリケーションにわけるのが簡単にできるようになりましたよね。 ステップとしてはこんな感じです: それぞれのモジュール(サブアプリケーション)のconfigファイルを作成する web.xmlファイルの中にモジ…

LookupDispatchAction + html:link

LookupDispatchActionはボタンを使う時に役立つのですが、リンク先にアクションを指定したい時もありますよね。 そういう時は、アクションのディスパッチメソッドの名前をリンクに付けたします。 <html:link action="/dataSubmit?methodKey=edit"/>LookupDispatchActionはリソースバンドル内のキーとアクショ</html:link>…

LookupDispatchAction + エンター

LookupDispatchActionを使ったフォーム処理で、JSPページでこんな風になってたとします。 <html:submit property="methodKey"> <bean:message key="button.add"/> </html:submit>普通にサブミットのボタンを押した場合はアクションクラスで"submit"メソッドが処理されるのですが、ボタンを押さずにENTERキーを押した場合、 Request does not co…

LookupDispatchActionのディフォルトメソッド

LookupDispatchActionのサブクラスでディフォルトメソッドを定義する方法です。 下に書いた"ENTERキーを押した"時にも役立ちます。 LookupDispatchActionのサブクラスでexecuteメソッドをオーバーライドし、パラメータが存在するかどうかを確認します。 なけ…

Strusを使うWebアプリケーション構築術(1)[atmarkit.co.jp]

インストール方法も書いてあります。 第1回 フレームワーク・プログラミングの準備

Strutsで作るWebアプリケーション入門[zdnet.co.jp]

MVCアーキテクチャは大切なのですが、初歩的なことは書かない予定なので、リンクだけ…。 第1回: フレームワーク「Struts」の基礎を知る 第2回: 実用サンプルコードで理解する「Struts」の基礎

LookupDispatchActionで日本語のkeyを使う時

@IT会議室のJava Solution会議室で見付けました。 ボタンのバリューがascii文字以外だと、上手くreverse lookupができないようです。 どうやらエンコーディングの問題らしいのですが、RequestProcessorのサブクラスでprocessPreprocessメソッドをオーバーラ…