Вопрос по jsf, primefaces – нужно нажать командную кнопку дважды

8

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

<h:form id="formP">
    <p:commandButton id="temp" value="photos" actionListener="#{viewBacking.debugBreakpoint()}" action="userPhoto" />
</h:form>

Боб имеет

public void debugBreakpoint() {
    int i = 0;
    i++;
}

К сожалению, это помогает. Это достигает моей точки останова только после второго нажатия. Я подозреваю, что какое-то поле где-то не проходит проверку, но я хотел бы, чтобы какой-то метод определения, что именно идет не так, - зачем мне второе нажатие? Есть ли какая-нибудь опция, которую я могу включить в Glassfish, или что-то еще, где я могу посмотреть дамп отладочной информации? Я могу игнорировать дамп, пока все не станет стабильным, а затем посмотреть, что именно происходит, когда я нажимаю кнопку в первый раз.

Есть ли такой инструмент, который я могу использовать?

добавлять<p:messages /> на вашу страницу, чтобы вы могли увидеть любые ошибки проверки Petr Mensik
Вы пробовали другие машины и браузеры? Я только что случился со мной сегодня, и пока что это локально для тонких клиентов 10Zig, работающих под управлением Google Chrome. Не могу скопировать на моем Thinkpad под IE или Chrome там. Та же ОС и т. Д. Brian Knoblauch
Я добавил & lt; p: messages / & gt ;, что в любом случае является хорошей идеей. Ничего не появилось, но я совсем не уверен, что это ошибка валидации. Изменение сигнатуры debugBreakpoint приводит к тому, что он вообще не срабатывает. Проблема состоит в том, что в первый раз он не достигает точки останова, а во второй раз он является правильным и законным. Ilan Tal
Эта h: форма перерисовывается другой h: формой? elias
Я использую основной шаблон с & lt; p: layout fullPage = & quot; true & quot; & gt; Затем в центре & lt; p: layoutUnit & gt; Я использую & lt; ui: insert & gt ;. Существует & lt; h; form id = "menuForm" & gt; на мастер шаблон. Это делает мою страницу в центре перерисованной? Ilan Tal

Ваш Ответ

5   ответов
0

вместо того, чтобы иметь и actionListener, и действие, просто преобразовать метод actionListener, чтобы он возвращал строку туда, куда вы хотите перейти, и использовать ее в качестве метода для действия (и не иметь actionListener).

Проще говоря:only используйте действие (не используйте actionListener для commandButton, который отправляет форму).

0

поля bean должны быть строковыми или не примитивными.

13

<h:form> была предоставлена / обновлена другой командой кнопка / ссылка с<f:ajax>, Данная форма затем потеряет свое состояние просмотра, которое будет возвращено только после первой отправки формы. Любые последующие представления будут работать в обычном режиме. Это вызвано ошибкой в JSF JS API, описанной вВыпуск JSF 790 который будет исправлен в следующей версии JSF 2.2.

Вам нужно исправить еще одну командную кнопку / ссылку с помощью<f:ajax> явно включить идентификатор клиента данного<h:form> вrender.

<f:ajax render=":somePanel :formP" />

Другой способ заменить это<f:ajax> от PrimeFaces<p:commandLink> или же<p:commandButton> так что вам не нужно явно указывать идентификатор клиента для всех форм. JS API от PrimeFaces уже включил это исправление.

Error: User Rate Limit Exceededyour follow up questionError: User Rate Limit Exceededhere.
Error: User Rate Limit Exceeded Ilan Tal
Error: User Rate Limit Exceeded Ilan Tal
0

добавлятьevent="onclick" в вашемp:commandbutton
Я думаю, что это разобраться.

Error: User Rate Limit Exceeded Ilan Tal
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Ilan Tal
Error: User Rate Limit Exceeded
0

false & quot; свойство в вашем commandButton

<p:commandButton ajax="false" action="#{userController.create}" value="#{bundle.CreateUserSaveLink}"></p:commandButton>

Похожие вопросы