jsf コンポーネント (h:inputFile & h:selectBooleanCheckbox) に奇妙な問題があります。
マウスがページ上の別の場所にある場合でも、両方のコンポーネントがフォーカスを受け取ります。コードは次のとおりです。
<h:form id="logoUpload" enctype="multipart/form-data">
<div>
<h:outputLabel rendered="true">
<h:inputFile id="companyLogo" label="file" value="#{fileHandlerBean.part}" >
<f:validator validatorId="FileUploadValidator" />
</h:inputFile>
</h:outputLabel>
</div>
<div class="clear" />
<h:outputLabel rendered="true">
<div>
<div style="width: 5%">
<h:selectBooleanCheckbox id="acceptToULogo" value="#{companyEditController.confirmToU}">
<p:ajax event="change" update="buttonLogo" />
</h:selectBooleanCheckbox>
</div>
<div style="width: 95%">
<h:outputText value="Some Text " />
</div>
<br />
<h:commandButton id="buttonLogo" styleClass="formbutton" value="Upload"
action="#{companyEditController.companyLogoUpload()}"
actionListener="#{fileHandlerBean.uploadCompanyLogo()}"
disabled="#{!companyEditController.confirmToU}"/>
</div>
</h:outputLabel>
</h:form>
h:outputText の上にマウスを移動すると、チェックボックスがフォーカスを受け取ります。h:inputFile タグにも同じ問題がありました。ah:outputLabel タグで囲んで解決しましたが、残念ながら selectBooleanCheckbox では機能しません。
誰かが過去に同じ問題を抱えていて、解決策を知っていますか?