JSFを使用してシナリオを実装しようとしています。私は持っています、commandExButton
そしてユーザーがこのボタン「A」をクリックすると、それはアイテムpanelDialog
を含むを示しselectManyCheckBox
ます。継続的に更新される1つのファイルを解析することにより、バックエンドBeanでこれらのアイテムを生成します。私が欲しいのは、このボタン「A」をクリックするたびに、バックエンドBeanを介してファイルを解析することにより、最新のselectItemsを取得する必要があるということです。しかし、ページが最初にレンダリングされたときに生成されたものと同じselectItemを取得します。そのため、現時点では回避策があります。この回避策では、実際にページを更新する更新ボタンを1つ含め、ユーザーが[A]をクリックして、現在のファイルのコンテンツを解析して最新のselectItemを取得します。しかし、新しいボタンを追加したり、既存のボタンを使用したりしなくても、とにかく実行できますか?
以下は私が使用しているコードです
<td>
<hx:commandExButton id="preferenceButton" styleClass="form" value="#{nls.preferenceLink}"
title="#{nls.preferenceLinkTitle}" type="submit" />
</td>
<td>
<h:form id="PrefForm" rendered="#{Test.isCurrent}">
<hx:panelDialog type="modal" id="preferenceSet" styleClass="panelDialog" for="preferenceButton"
title="#{nls.preferenceDialogTitle}">
<h:outputText styleClass="panelStartMessage" style="display:block;"
value="#{nls.preferenceDialogWindowText}" />
<h:panelGroup rendered="#{Test.hasSelectItem }"
style="display:block;width:300px;height:360px;overflow:auto;" styleClass="panelGroup"
id="prefPanelGroup">
<h:selectManyCheckbox value="#{Test.selectedItems}" layout="pageDirection">
<f:selectItems value="#{Test.selectItems}" />
</h:selectManyCheckbox>
</h:panelGroup>
<hx:panelBox styleClass="information_box" id="noCommandWindow" layout="lineDirection"
rendered="#{!Test.hasSelectItem }">
<h:outputText styleClass="outputText" id="cmdInfo" value="#{nls.noCommands}" />
</hx:panelBox>
<hx:panelBox id="buttonBox1" styleClass="panelStartBox" layout="lineDirection">
<hx:commandExButton id="submitPref" styleClass="commandExButton" type="submit"
value="#{nls.submit}" action="#{Test.action}">
<hx:behavior event="onclick" behaviorAction="hide" targetAction="preferenceSet"
id="behaviorSubmitPref" />
</hx:commandExButton>
<hx:commandExButton id="CancelPref" styleClass="commandExButton" type="submit"
value="#{nls.cancel}" action="Test">
<hx:behavior event="onclick" behaviorAction="hide" targetAction="preferenceSet"
id="behaviorCancelPref" />
</hx:commandExButton>
</hx:panelBox>
</hx:panelDialog>
</h:form>
</td>
Beanのコード:
public class Test{
private List<String> selectedItems;
private List<SelectItem> selectItems;
public List<SelectItem> getSelectItems() {
// populate the selectItem here...
}
}