Struts

DynaActionFormでreset()

昔の話だと、resetメソッドを自分で書かないといけなかったのだけど 「DynaActionFormを拡張してresetメソッドを実装する。」 →http://struts.wasureppoi.com/form/01_reset.html 今はこうかける? <form-beans > <form-bean name="DynaResetForm" type="sample.form.DynaResetForm" > <form-property name="chk" type="java.lang.String" initial="off" reset="true" /> </form-property></form-bean></form-beans>

tilesでワイルドカード

いろいろ調べたが、ないようだ せっかくstruts-config.xmlはワイルドカードで綺麗になるのに・・・

tilesを使うと404?

tilesの定義へforwardのパスを設定したが、404になったり"/"からはじめろetc どうやら、web.xmlに記述が必要だった模様 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> …</servlet>

Arbitrary configuration properties

ちょっとしたサンプルアプリを作るのに使ってみた方法 <action path="/ATPP321" ... /> <set-property key="foo" value="bar"/> </action>String foo = mapping.getProperty("foo"); あら、楽チン 出典:http://kamakura.cool.ne.jp/oppama/ssja/struts-memo.html

sample-blank

Webアプリのサンプルをクレと言われて、blankのアプリを渡そうと思ったら動かないという罠。 キー "welcome.title" に対応するメッセージが見つかりません struts-config.xmlが間違ってますよ・・・ ○:<message-resources parameter="java/MessageResources" /> ×:<message-resources parameter="MessageResources" /> テストしたんかい・・・</message-resources></message-resources>

OutputStreamの内容を読みたい

軽い結合テストレベルでテストパターンが100以上あるのに毎回手でやるんですかf^^;なときにstrutstestcaseで無理やり作ってしまおうという話。 想定としてはこんなかんじの業務アプリ。 ・呼出元でパラメータpost ・Actionクラス呼出 ・なんかの業務処理 ・O…

strutstestcaseでWebApplicationContext

SpringのStruts連携の一つの方法である、org.springframework.web.struts.ActionSupportを使った時のテスト。 何も設定をしないと、getWebApplicationContext()でnullが返されてしまうので自分で設定する必要がある。 public class TestTargetActionTest ext…

気になるところ

Webのフレームとしては、もうしばらくStrutsかなぁと思っているわけで。 正確には現状のStrutsから順次移行せざるを得ない、ということでもある。 既存のStrutsアプリにAjaxを導入する方法としては、 1.Shaleを導入する 2.DWRやRubyを使用する 3.Ajax…

FieldChecks

ERROR (ValidatorForm.java:112) - No such validationmethod: org.apache.struts.validator.FieldChecks.validateMask( java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.A…

連携サンプル

最初はこちらを使ったのだが http://wiki.openlaszlo.org/Example_Applications 404がでて動かないな。 もうひとつ見つけたのは http://www.laszlosystems.com/developers/community/forums/showthread.php?s=578ea0ae87f7e32538140e8b7ee45db1&threadid=290…

Laszlo on Struts

前から気になっていたLaszloだが、気合をいれるとStruts上でも動くのか・・・。 Strutsの既存資産を生かすとなると、JSFしかないのかなぁと思っていたけれどこれは検討の余地があるのか!? 追記 というか書いてあるじゃないか http://laszlo.jp/fboard/read…

logic:iterate=>c:forEach

strutsタグを順次JSTLに移行しよう極秘計画を遂行中。logic:iterateでの記述 <logic:iterate id="hoge" name="hogeBean" property="hogeList" scope="session"> <TR bgcolor="#FFFFEE"> <TD nowrap width="10%" align="center"> <bean:define id="groupIndex" name="hoge" property="index" /> </bean:define></td></tr></logic:iterate>

Struts-Layout

Struts-Layoutというものがあって*1、まあお手軽にリッチクライアントになるらしい。 ただ、shale待ちでJSF入れたいなぁと思っているのでちょっと微妙なところ。 とりあえず開発ツールのサイトがフランス語なのでさっぱりわからん。 *1:http://codezine.jp/a…

LookupDispatchAction + エンター

izuさんのところのむかーしの記事のタイトルをぱくってみました。 LookupDispatchActionはクリックされたボタンにより処理を振り分けるもの。例えばこんな風にしておけば、 <html:form action="/hoge"> <html:submit property="action"><bean:message key="button.moge"/></html:submit> <html:submit property="action"><bean:message key="button.hage"/></html:submit> </html:form>クリックされたボタン…

Strutsにおけるクロスサイトスクリプティング脆弱性

げげげげげ Strutsにおけるクロスサイトスクリプティング脆弱性*1 Security Advisory: Struts Error Message Cross Site Scripting*2 【調査方法】(保証なし) 1.存在しないパスを叩く 2. a.404がでる=>とりあえずセーフ b.400がでる=>アウト てこ…

メールアドレスに使用してもよい文字

メールアドレスで使用できる文字はRFCなんちゃら*1に書かれているらしいのだが、さっぱり分からないわけで。 んで、結論としては 英数字と!#$%&'*+-/=?^_`{|}~.ということらしい。 らしいというのは、このネタをどこから持ってきたのか分からないからだな。 …

validateWhen

ユーザガイド*1によると、validationで"requiredif"ではなく"validwhen"が推奨されるようだ。 使い方は簡単で、このように"=="で条件を書くことができる。 <field property="emailAddress" depends="validwhen"> <arg0 key="userinfo.emailAddress.label"/> <var> <var-name>test</var-name> <var-value>((sendNewsletter == null) or (*this* != null))</var-value> </var> </arg0></field>

二つの項目を比較する

ガイド*1を参考にしたのだが、コンパイルが通らない。 public static boolean validateTwoFields( Object bean, ValidatorAction va, Field field, ActionErrors errors, HttpServletRequest request, ServletContext application) { String value = Validat…

staticなGetter

セレクトボックスの中身をFormにでもかくべぇと思って。 private static Collection options; static { Collection c = new ArrayList(); c.add(new LabelValueBean("label0", "value0")); c.add(new LabelValueBean("label1", "value1")); c.add(new LabelV…

おんやぁ?

Strutsの定義 <action path="/InitFaces" type="hoge.InitAction" name="SampleBean" validate="false" scope="request"> <forward name="success" path="/hoge"/> </action> /hogeはtilesの定義。 <definition name="hogelayout" path="/common/layout.faces"> <put name="title" value=""/> </definition>

Struts-FacesでTilesを使う場合

ほんと、いつもいつもizuさんにはお世話になります・・・http://izu.shinzui.org/space/Struts/Struts-Faces/Using+Struts-Faces+Library アプリケーションモジュールがTilesを使ってない場合: アプリケーションモジュールがTilesを使っている場合: これを間…

失敗失敗

2005-08-04 15:33:41 StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました javax.servlet.jsp.JspException: クラス hoge.web.form.HogeForm のbeanを生成する際の例外: {1} at org.apache.struts.taglib.html.FormTag.init…

iterateでMapを取り出す

ぱっと見つかったのが1.0の?ドキュメントだけど*1 通常、iterateタグによって表される各オブジェクトは、繰り返しているコレクションの要素です。 しかしながら、Mapを繰り返し処理する場合、展開されたオブジェクトはMap.Entry型であり、2つのプロパティを…

Struts+SpringでSpringをそれらしく使う

試行錯誤して、ある日ふと閃いた方法。というかはよ気がつけよ、と思ったのも事実だが・・・。 お約束の層分け ・web層 ・・・ActionクラスとかStrutsまわり ・app層 ・・・POJOによるビジネスロジック ・domain層 ・・・DBアクセスを管理 目的 「web-app層…