0

変更時にゾーンを更新するフォーム内に Select Enum コンポーネントがあります。これはうまく機能しています:

<t:select t:id="anEnum" validate="required" zone="${getZone()}" />

public String getZone() {
    if (anEnum== AnEnum.TYPE1) {
        return "zone1";
    } else if (anEnum== AnEnum.TYPE2) {
        return "zone2";
    } else {
        return "zone3";
    }
}

@OnEvent(value = EventConstants.VALUE_CHANGED, component = "anEnum")
public Object updateDisplay(AnEnum anEnumIn) {
    anEnum= anEnumIn;
    if (anEnum== AnEnum.TYPE1) {
        return zone1.getBody();
    } else if (anEnum== AnEnum.TYPE2) {
        return zone2.getBody();
    } else {
        return zone3.getBody();
    }
}

私が抱えている問題は、フォームを送信し、検証が onValidate メソッドの Java クラスで処理されると、ページが間違ったゾーン (通常はゾーン 3) で再レンダリングされることです (これは「else」として意味があるかもしれません)。上記のメソッドで返されます)。正しいゾーンを再度レンダリングする方法

@SetupRender
void setupRender() {
  updateDisplay(anEnum);
}

どんな助けでも大歓迎です!

4

2 に答える 2