Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会で話したいけど、プレゼンが初めて、苦手という方に無償でコーチします!

  • スライドのレビュー
  • 録画リハへのアドバイス

Twitter@jyukutyoまでメンションでもDMでも。 デブサミやJJUG CCCなど200人規模で登壇しました。海外での登壇も短いながらあり。デブサミ2017では公募スピーカー1位でした!

DynaActionFormでprimitiveなフィールドにはinitial属性が必要

strutsのDynaActionFormではprimitiveなフィールドにinitial属性がないとNullPointerExceptionで落ちました。DynaActionFormはMapだしそらそうですよね。
DynaActionFormClassクラス。

    public DynaBean newInstance()
        throws IllegalAccessException, InstantiationException {

        DynaActionForm dynaBean =
            (DynaActionForm) getBeanClass().newInstance();
        dynaBean.setDynaActionFormClass(this);
        FormPropertyConfig props[] = config.findFormPropertyConfigs();
        for (int i = 0; i < props.length; i++) {
            dynaBean.set(props[i].getName(), props[i].initial());
        }
        return (dynaBean);

    }

config.findFormPropertyConfigs();で設定ファイルからform-property取ってます。dynaBean.set(props[i].getName(), props[i].initial());のprops[i].initial()でinitial属性を取得。initial属性がなければnull。