変更時にゾーンを更新するフォーム内に 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);
}
どんな助けでも大歓迎です!