[Seasar-user:14266] Re: [SAStruts] EL 式でパブリックフィールドが使える件について
Kazuya Sugimoto
[E-MAIL ADDRESS DELETED]
2008年 5月 19日 (月) 16:09:15 JST
杉本です。
ひがさん、ご返答ありがとうございます。
tutorialでも以下のコードを追加・変更することで再現しました。
1.tutorial.dto.AbcDtoを追加します。
>||
package tutorial.dto;
import java.io.Serializable;
public class AbcDto implements Serializable {
private static final long serialVersionUID = 1L;
public int testId;
public String testName;
}
||<
2.tutorial.action.AddActionを変更します
>||
・・・
public AbcDto abcDto;
@Execute(validator = false)
public String index() {
abcDto = null; // これ重要です
return "index.jsp";
}
・・・
||<
3./WEB-INF/view/add/index.jspを編集する
>||
・・・
<html:errors/>
${f:h(abcDto.testId)}:
${f:h(abcDto.testName)}
<s:form action="/add">
・・・
||<
以上で、/sa-struts-tutorial/add/にアクセスすると、再現すると思います。
よろしくお願いします。
2008/05/19 13:30 Yasuo Higa <[E-MAIL ADDRESS DELETED]>:
> ひがです。
>
>> 杉本です。
>>
>> SAStrutsで、EL式でパブリックフィールドが使える件について確認ですが、
>>
>> 以下のようなクラスでhogeDtoをJSPから参照したときの話です。
>> public class AbcAction {
>>
>> public HogeDto hogeDto; // SMARTDeploy対象のDto
>>
>> ・・・
>> }
>>
>> hogeDtoがnullの場合、hogeDtoのパブリックフィールドにアクセスするようなEL式を書くと
>> 以下のようにエラーになります。このとき、getterを用意するとエラーは起きません。
>> オペレータ"."を利用しましたが、・・・HogeDto"のオブジェクトにおいて "hogeId"に対応する値が見つかりません
>>
>> で、hogeDtoがnullでない場合は上記のようなエラーは発生しません。
>>
>> また、このhogeDtoのフィールド名を hogeHogeDtoのようにコンポーネント名と違う名前に
>> 変更すると、上記のようなエラーは発生しません。
>>
>> 環境はSAStruts1.0.2-RC2です。
>>
> 私のところで、HelloActionとHelloDtoを作ってやってみましたが
> 再現しませんでした。
> 念のため、AbcActionとHogeDtoもやってみましたが再現しませんでした。
>
> sa-struts-tutorialをベースに簡単な再現ケースがあると
> 調査できると思うので、よろしくお願いします。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--
Kazuya Sugimoto
Microsoft MVP Development Platforms - XML
http://d.hatena.ne.jp/sugimotokazuya/
Seasar-user メーリングリストの案内