を div でラップ<ice:panelGroup>
し、javascript チェックで表示/非表示にすることで実現できます。
<script type="text/javascript">
var arrInputs = new Array(9);
function checkInputsFulfilled(value, index) {
arrInputs[index] = (value == "");
var filled = true;
for(var i = 0; i < arrInputs.length; i++) {
if (arrInputs[i]) {
filled = false;
break;
}
}
document.getElementById("myDiv").style.display = filled ? "block" : "none";
}
</script>
<ice:panelGroup binding="#{myPage.boxes0to9}">
<!-- your 9 inputs (or more) here, I'll write 1 as a sample -->
<h:inputText value="#{myBean.attribute1}" onchange="checkInputsFulfilled(this.value, 0);" />
</ice:panelGroup>
<div id="myDiv" style="display:none">
<ice:panelGroup binding="#{myPage.boxes10to19}">
</ice:panelGroup>
</div>
ajax サポートを使用してそれを実行し、2 番目をラップする JSF コンポーネントをレンダリングすることもできますが、<ice:panelGroup>
開始入力の 1 つを空にしてグループを非表示にする場合、これは大きな影響を与えます。もちろん、この最後の動作は JavaScript で制御されます。変更したくない場合は :)。