次の JSF (および jQuery Mobile) マークアップを検討してください。
<h:form>
<a href="#login" data-rel="popup">Please login</a>
<h:outputText id="greeting" value="Welcome, you have logged in" rendered="#{sessionScope.login == null ? false : true}"/>
<div id="login" data-role="popup">
<h:inputText value="#{requestScope.userName}"/>
<h:inputHidden value="#{requestScope.password}"/>
<h:commandButton value="login" action="#{loginBacking.processLogin}">
<f:ajax execute="@form" render="greeting"/>
</h:commandButton>
</div>
</h:form>
<h:form/>
jQuery Mobile ポップアップはポップアップ内にタグを必要とするため、明らかに上記のマークアップはユーザー入力をサーバーに送信しません。しかし、<h:form/>
ポップアップ内にタグを入れると使えません<f:ajax render="greeting"/>
(id「greeting」が外に出てしまうため)。
ボイラープレート Javascript コードを使用せずにこの問題を解決するにはどうすればよいですか?