送信ボタンが実際に押されたときにrequired
属性を評価させてください。true
ただし、答えは、送信ボタンがそのロジックを実行する方法(標準f:ajax
、、ICEfacesなど)によって異なります。ただし、基本的には、要求パラメーターマップで、目的の送信ボタンが押されたことを示す要求パラメーターを確認できるということです。
たとえば、標準のコマンドボタンの場合:
<h:form id="form">
...
<h:commandButton id="submit" value="Submit" action="#{bean.submit}" />
</h:form>
次に、ボタンのクライアントIDがリクエストパラメータマップに存在するかどうかを確認することで、それを確認できます。
<c:set var="submitButtonPressed" value="#{not empty param['form:submit']}" />
...
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />
または、<f:ajax>
ボタンの場合:
<h:form id="form">
...
<h:commandButton id="submit" value="Submit" action="#{bean.submit}">
<f:ajax execute="@form" ... />
</h:commandButton>
</h:form>
javax.faces.source
次に、パラメータがボタンのクライアントIDと等しいかどうかを確認することで確認できます。
<c:set var="submitButtonPressed" value="#{param['javax.faces.source'] == 'form:submit'}" />
...
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />
両方を組み合わせることもできます。
<c:set var="submitButtonPressed" value="#{not empty param['form:submit'] or param['javax.faces.source'] == 'form:submit'}" />
...
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />
<h:inputText ... required="#{submitButtonPressed}" />