0

汎用 ID を持つ 1 つのテンプレートを含めました

<ui:include src="./buttons.xhtml">
     <ui:param name="action" value="#{bean.nextSessionId()}" />
</ui:include>

ボタン.xhtml

<ui:composition>
   hello-#{action}-#{action}
</ui:composition>

出力

hello-obcpusp90m7653vci7ohh87aa3-vcv63aj2h8h8gak3dhb5do0

Bean はビュースコープです

private SecureRandom random = new SecureRandom();

public String nextSessionId()
{
   return new BigInteger(130, random).toString(32);
}

なぜIDが等しくないのですか?

これにはIDが必要です

<p:commandButton id="basic#{action}" value="Basic" onclick="dlg1#{action}.show()" type="button" process="@this"/>


<p:confirmDialog id="id#{action}" widgetVar="dlg1#{action}">  
    <p:inputText value="....."/>

    <p:commandButton oncomplete="dlg1#{action}.hide()" value="Close"/>
</p:confirmDialog>  
4

1 に答える 1

0

getter メソッドでビジネス ロジックを実行しないでください。ゲッター メソッドは、既に準備されたBean プロパティを返すことになっています。プロパティの有効期間は、プロパティを保持するマネージド Bean のスコープによって識別されると想定されています。

例えば

private String sessionId;

@PostConstruct
public void init() {
    SecureRandom random = new SecureRandom();
    sessionId = new BigInteger(130, random).toString(32);

public String getSessionId() {
    return sessionId;
}

<ui:param name="action" value="#{bean.sessionId}" />

完全に間違ったメソッド名も修正したことに注意してください。

于 2013-10-30T13:34:15.227 に答える