Condicionalmente haga las entradas requeridas dependiendo del valor de la casilla de verificación

En mi página JSF, tengo una casilla de verificación de entrada HTML donde los usuarios pueden elegir si desean el regalo o no, y<div> La sección debajo de la casilla de verificación solo se mostrará si la casilla está marcada. Una vez que se marca la casilla de verificación, los usuarios deberán seleccionar una opción (desde un menú desplegable, el valor inicial del menú desplegable = nulo); sin embargo, la selección no es necesaria si la casilla de verificación no está marcada.

Entonces, aquí vienen dos condiciones:

A. La casilla de verificación está marcada (se reproduce la vista div ==)

el usuario elige una opción -> ok

el usuario no selecciona nada -> Quiero que se muestre el mensaje requerido, y esto es lo que he hecho:

<p:message style="margin: 10px" id="messages7" for="npsScoreSupport" />
<h:selectOneMenu id="npsScoreSupport" value="#{npsBean.supportScore}" required="true" requiredMessage="Please select an option">
    <f:selectItems value="#{npsBean.ratingPickList}" />
</h:selectOneMenu>

B. La casilla de verificación no está marcada (== la vista div está oculta)

El usuario no selecciona nada -> está bien, pero la página aún requiere que los usuarios elijan una opción ya que tengo el requerido = "verdadero".

Dado que necesito el mensaje obligatorio para asegurarme de que se selecciona una opción cuando se marca la casilla de verificación, me pregunto si es posible hacer que el mensaje requerido esté condicionado en función del estado de la casilla de verificación. (se requiere cuando la casilla de verificación está marcada, y no se requiere cuando no está marcada) ¿alguna sugerencia?

============ actualizado ======================

Así que ahora he actualizado mi casilla de verificación y la conecto con una función en la clase JAVA (variable boolean variable = verdadera como predeterminada)

<h:selectBooleanCheckbox class="someClass" value="#{someBean.check}" />

Y aquí está mi selector

<h:selectOneMenu id="OptSelector" value="#{someBean.Opt}" required="#{someBean.check}" requiredMessage="Please select and option">
                                                <f:selectItems value="#{npsBean.OptPickList}" />

El envío falló incluso cuando la casilla de verificación no está seleccionada, parece que la verificación booleana nunca cambia. Alguien sabe por qué?

Respuestas a la pregunta(1)

Su respuesta a la pregunta