Метод действия CommandButton не выполнен

#html #css #jsf #primefaces

#HTML #css #jsf #простые

Вопрос:

я работаю в веб-приложении с jsf и primefaces.

Мой код для панели навигации выглядит следующим образом:

 <p:layoutUnit position="north"  >
                <h:form>
                    <img src="resources/images/logo.png" alt="" />amp;nbsp;amp;nbsp;amp;nbsp;
                    <p:outputLabel value="Rechercher    " style="font-size: large"/>  amp;nbsp;amp;nbsp;amp;nbsp;
                    <p:inputText  value="#{acount.searchWord}" required="true" requiredMessage="Le titre est requit"/>amp;nbsp;amp;nbsp;amp;nbsp;
                    <p:commandButton value="Go" action="#{acount.rechercherLivre(acount.searchWord)}"  styleClass="btngo"  />
                    <h:link outcome="main.xhtml" value="Accueil"   style="margin-left: 400px;font-size: medium"/>amp;nbsp;amp;nbsp;
                    <h:link outcome="Contact.xhtml"  value="Contact" style="font-size: medium"/>amp;nbsp;amp;nbsp;
                    <h:link outcome="Info.xhtml" value="Info" style="font-size: medium"/>amp;nbsp;amp;nbsp;amp;nbsp;
                    <h:link outcome="Login.xhtml" value="Login" style="font-size: medium" rendered="#{!acount.connected}" /> amp;nbsp;amp;nbsp;
                    <h:link outcome="exe.xhtml" value="S'enregistrer" style="font-size: medium" rendered="#{!acount.connected}" /> amp;nbsp;amp;nbsp;

                    <p:menuButton value="Panier #{shopingCart.produits.size()}"   style="color: #045491;background: greenyellow;background-color: yellowgreen;font-size: medium">
                        <p:menuitem value="Afficher"    action="#{shopingCart.afficherPanier()}"/>
                        <p:separator />
                        <p:menuitem value="Homepage" url="http://www.primefaces.org" />
                    </p:menuButton>
                    <p:menuButton value="Options"   rendered="#{acount.connected}" style="color: #045491;background: greenyellow;background-color: yellowgreen;font-size: medium">
                        <p:menuitem value="Compte"   />
                        <p:menuitem value="Mes Commandes "  />
                        <p:menuitem value="Se deconnecter" action="#{acount.doLogout()}"  />
                        <p:separator />
                        <p:menuitem value="Homepage" url="http://www.primefaces.org" />
                    </p:menuButton>
                </h:form>
            </p:layoutUnit>
  

И изображение для этого кода:

введите описание изображения здесь

Проблема в том, что если я ничего не помещаю в вводимый текст, действие для CommandButton не выполняется, также метод действия в MenuButton не выполняется, если я что-то не помещаю во входной текст.

Я могу решить эту проблему, поместив форму для каждого метода действия, но моя панель навигации стала больше, и это выглядит достойно.

как я могу решить эту проблему?

Комментарии:

1. required="true" requiredMessage="Le titre est requit" разве это не говорит само за себя?

2. Спасибо, я не обращал внимания, потому что сообщение так и не было опубликовано.

3. у меня есть еще один вопрос, если вы можете мне помочь, для функции поиска я только что внедрил такую функцию, как функция substring , мне нужна функция с большими возможностями для поиска, потому что, если пользователь забудет один алфавит, результата не будет. и это плохо

Ответ №1:

Если вам не нужно вводить какое-либо значение в свой компонент с помощью вашей CommandButton, добавьте атрибут процесса в CommandButton. Я думаю, что вы пытаетесь оставить некоторые входные данные пустыми и по-прежнему отправлять запрос, но проблема в том, что для одного из них установлен требуемый атрибут ‘true’. Удалите обязательный атрибут из ваших входных данных и добавьте process=»@this» в вашу CommandButton. Надеюсь, я прав.