できることは、Javascript を使用してボタンのステータスを変更することです。
<h:commandButton ... onclick="this.disabled=true"/>
コメントに関する編集:
前のコードがフォームを送信しない場合は、クリック自体ではなく、クリックの少し後にボタンを無効にする必要があります。次のコードを使用してそれを行うことができます。
<h:commandButton ... onclick="setTimeout('this.disabled=true', 100);"/>
thisキーワードを setTimeout メソッドで直接使用するという事実が正しく機能するかどうかはわかりません。そうでない場合は、別の方法を使用してそれを行うことができます。
<h:commandButton ... onclick="disableButton(this.id);"/>
次の Javascript 関数を使用します。
function disableButton(buttonId) {
setTimeout("subDisableButton(" + buttonId + ")", 100);
}
function subDisableButton(buttonId) {
var obj = document.getElementById(buttonId);
if (obj) {
obj.disabled = true;
}
}
(このコードは拡張できると確信しています。)