[akabana-user:93] DTOのフィールド値が空になる
Junji Furuya
j-furuya @ solty.co.jp
2007年 2月 9日 (金) 13:01:20 JST
古谷といいます。
よろしくお願いいたします。
s2Flex2を使わせて頂いていますが、
<S2Flex2Service>タグで呼び出したJava側オブジェクトで、
DTOを戻り値に使用した場合、
DTOのフィールドに格納された値が空になってしまう現象が起こっています。
起こるのは、フィールド名の先頭の単語(?)が一文字の場合のようです。
例えば、
aTestCode
のような場合です。
aaTestCode
testACode
testAaCode
などだと起こりません。
長文になり申し訳ありませんが、
下に検証に使用したコードを貼らせて頂きます。
■Java側Service(一部抜粋)
@RemotingService
public class TestServiceImpl
…
public Map<String, Object> execute(Object input){
Map<String, Object> resultMap = new HashMap<String, Object>();
TestDto dto = (TestDto)input;
System.out.println("---aTestCode---"+dto.getATestCode());
System.out.println("---aaTestCode---"+dto.getAaTestCode());
System.out.println("---testACode---"+dto.getTestACode());
System.out.println("---testAaCode---"+dto.getTestAaCode());
resultMap.put("RESULT", dto);
return resultMap;
}
…
}
■Serviceのイベントリスナ(一部抜粋)
public function onResult(resultEvent:ResultEvent):void
{
Alert.show(TestDto(resultEvent.result["RESULT"]).aTestCode);
Alert.show(TestDto(resultEvent.result["RESULT"]).aaTestCode);
Alert.show(TestDto(resultEvent.result["RESULT"]).testACode);
Alert.show(TestDto(resultEvent.result["RESULT"]).testAaCode);
}
とした場合、
Java側サービスのprintlnでは全ての値が表示されますが、
イベントリスナのAlert.showでは、一番上の「aTestCode」のみ、
空になります。
なお、検証に使用したバージョンは、
s2-framework-2.4.8
s2-flex2-1.0.0
s2-flex2-tiger-1.0.0
となります。
現在のプロジェクトでは、
命名規約でそのような略語は使用しないこととしました。
そもそもJavaのコーディング標準からするそのような命名は…
という事象かもしれませんが、ご報告いたします。
もしその他に必要な情報等ございましたら、
ご指摘ください。
よろしくお願いいたします。
akabana-user メーリングリストの案内