2008-01-01から1年間の記事一覧
Struts2で他のアクションを呼び出す方法として s:action によるものがあるが、この機能の便利なところは元々のアクションに渡されたパラメータが全て s:action で呼び出したアクションにもデフォルトで渡されるということだ。これで、呼び出すアクションに一…
Struts2のJSP中でs:actionにより他のアクションを実行し、ValueStackを参照可能だが、結果のresultは実行されていない。 実行するためには executeResult="true" とする、こうすると出力内容が取り込まれる。ただし、HTMLのヘッダータグなどを出力していると…
Struts2のJSP中でs:actionタグを使用すると他のアクションを実行して、その結果のValueStackを参照したり結果の出力を取り込んだりすることが出来る。まずValueStackを参照する場合id属性で変数名を指定すれば、その変数経由で呼び出したアクションのValueSt…
s:component でJSPやHTML出力の部品化を行うことが出来るが、部品の中でFORM要素を使用する場合 はフォーム要素のタグの属性で templateDir や theme をFORM要素のものに戻してあげないと出力がされないので注意が必要だ。templateDirやthemeをちゃんと指定…
s:componentで呼び出すときにparameterを渡すことが出来る。呼び出し元と同じValueStackが参照できるのでどれ位意味が有るか不明だが次のようにする。 <s:component templateDir="parts" theme="simple" template="sample.jsp"> <s:param name="firstName" value="'fooFirst'"/> <s:param name="lastName" value="'fooLast'"/> </s:component> としてsample.jsp側では <%@page contentType…
s:componentタグによってJSPを部品化する事がある程度できる。templateDirとthemeとtemplateで{templateDir}/{theme}/{template}のようなパスになるのでその場所にJSPを置いて呼び出せばいい例えば <s:component templateDir="parts" theme="simple" template="sample.jsp"/> こうした場合WebContents/parts/simple/sample.jspが呼び</s:component>…
DefaultWorkflowInterceptorは次の事を行う。 Validatable が実装されているアクションに対して validate() の呼び出し ValidationAware が実装されているアクションに対して、 hasErrors() によりエラーをチェックしエラーならActionを実行せずに戻りとして…
Struts2での繰り返し処理のタグの s:iterator で属性status を指定すると、繰り返しの状態を取得できる。次のようにすると rs という変数が status になる <s:iterator value="listElements" status="rs"> statusは次のようなプロパティを参照できる 補足 例 index 何行目か 0からの数値 #rs.index count </s:iterator>…
Struts2のカスタムTagに s:incldue というのがある。 こちらは s:component と違い、 s:param で指定されたValueStackにはアクセスできないようだ。 しかしこちらのページhttp://struts.apache.org/2.0.11.1/docs/include.htmlのExsampleにはparamで渡せるよ…
Struts2のタグを調べていたら s:component というのが有った。 これはJSPやVelocity、Freemarkerのテンプレートをパーツとして取り込む機能のようだ。試したところ、取り込まれるJSP内部でもValueStackが参照できるし、s:param で仮引数的に渡すことも出来る…
Requestより長くて、Sessionより短い Conversation Scope のアイデアhttps://issues.apache.org/struts/browse/WW-1514なかなか面白そうだ。しかしScopedModelDrivenのスコープの1つとして実装できたほうがスマートじゃないだろうか?あとで検討してみよう。
JavaScriptのライブラリのExt-JSはGWT-Extから使えて見栄えもクールなので良いかと思ったらLicenseがLGPL3.0もしくは商用利用ライセンスだった。 商用利用でオープンソース化できないプロダクトでの利用には、商用ライセンスとしてライセンス購入の必要があ…
JSPでの定形の出力について部品化できないか調べている。 jsp:include は少し違う気がするし、カスタム・タグをJAVAで書くのも違う気がする。テンプレート・エンジンというと、Struts2ではStruts2タグの出力にはFreeMarkerが内部で使われているようだから同…
s:urlタグでURLを作ると きに指定できるオプションで、元の画面を表示した時のパラメータを含んだURLを生成してくれる。 これはこれでありがたい場面もあるが、必要ないときには <s:url id="url_var" action="foo" includeParams="false" /> とすると、余分なパラメータは付かなくなる。</s:url>
2008/3/25:この記事は思い違いの可能性があります。判明しだい訂正します。 2008/3/26:TOMCATをWTPでデバッグモードで起動していると実行やJSPのコンパイルが異常に遅くなる場合がある事が判りました。メモリ設定は下の記事で変えられますが直接の原因では無…
TypeがCLASSの場合がデフォルトなので、Typeは省略できる。 Annotation自体はModelDrivenの場合はModelの当該プロパティに書いた。 keyをプロパティ名にする必要があるようだ。 @TypeConversion(key="custom", converter = "tutorial.MyCustomTypeConverter"…
TypeConversionのパラメータは次のものが指定できる。 パラメータ 必須 デフォルト 備考 key - プロパティ名/キー名 type - ConversionType.CLASS APPLICATION/CLASS rule - ConversionRule.PROPERTY PROPERTY/COLLECTION/MAP/KEY/KEY_PROPERTY/ELEMENT/CREA…
http://www.springframework.org/downloadで落とせます 2月末にリリースされてたみたい。http://static.springframework.org/spring/docs/2.5.x/changelog.txtあまり使ってた部分で変更はなさそう。 とりあえず入れ替えときます。
AnnotationでTypeConverterを利用する場合 @TypeConversion を ModelDriven の getModel または、プロパティのSetメソッドで指定する。TypeConversionには type オプションがあり、 type=ConversionType.APPLICATION と type=ConversionType.CLASS が指定で…
コンバーターをAnnotationベースで指定する場合、Actionのクラスに @Conversion を指定する必要がある。
既存のコードで getInstance などのメソッドを呼んでSingleton を取得するタイプのクラスで、それをSpringのBeanとして管理下に置きたい場合は次のようにすることで実現できた。これでLegacyなSingletonも他のBeanにDIすることが出来るようになる。 package …
グローバルな型変換の登録は xwork-conversion.properties に次のように書くことで認識される。CustomTypeのコンバーターが MyCustomTypeConverter の場合は tutorial.CustomType=tutorial.MyCustomTypeConverterとなる。[変換対象の型]=[コンバーター]これ…
カスタムタイプコンバーターは与えられた文字列の長さを保持するカスタム型への変換とすると次のようになる package tutorial; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class MyCustomTypeConverter extends Str…
EclipseのWTPでTOMCATをローカル実行すれば、アプリケーションのデバッグが出来る。ホットコード置換機能もあるのでデバッグ中にコードを変更すれば即座に反映される。しかしデフォルトではTOMCATのContext設定の reloadable が true となっているため、コー…
カスタム変換のプロパティが配列の場合、配列の要素分変換が呼び出されるようになっている。
Struts2のカスタムコンバーターでは次のメソッドを用意する必要があるが、 public Object convertFromString(Map arg0, String[] arg1, Class arg2); こちらの arg1 の配列(String[]) の引数がどういう内容で呼び出されるのかは、プログラムで使用されている…
Struts2でプロパティで標準型以外を使用したい場合、カスタムのタイプコンバーターを利用できる。カスタムコンバーターは org.apache.struts2.util.StrutsTypeConverter; を実装すればいい。で、文字列からカスタム型、カスタム型から文字列への変換の両方を…
Struts2で標準でサポートされている型変換は次がある。String -- これは無変換boolean / Boolean char / Character int / Integer、 float / Float、long / Long、double / Doubleなどの組み込み型dates -- 日付 arrays -- サポートされる型の配列 collectio…
Browserで入力された値は通常String型でありプログラム内部で扱う型とは異なり変換が必要となる。 Struts2ではTypeConverterという仕組みで変換を行い、これはActionやModelのプロパティのsetter/getterの型とStringの相互変換の事である。 つまり、Struts2…
Client側でも System.out.println で昔ながらのデバッグ文がHostedモードなら上手く出力される。 出力されるのは GWT Shellのウインドウではなく、Eclipseのコンソールである。