我试图建立2个primeFaces panelGrid框,一个用于现有用户,另一个用于新用户。我注意到它停止了我的断点,我无法弄清楚发生了什么。我开始从源代码中删除它,直到它再次开始工作。
我发现了一件让我感到困惑的奇怪事情,我很感激有人能给我的任何暗示。支持bean主要是getter和setter,只是检查登录的逻辑的开头(在这个阶段基本上没什么)。 xhtml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Shalom Elias</title>
</h:head>
<h:body>
<h:form id="form">
Shalom
<h:panelGroup id="login" rendered="#{backing.renderPage(1)}">
<p:panelGrid id="knownUser" columns="2">
<f:facet name="header">
Registered User
</f:facet>
<h:outputLabel for="zehut1" value="ID" />
<p:inputText value="#{backing.buyer.tudatZehut1}" label="ID" id="zehut1" />
<h:outputLabel for="pass1" value="Password" />
<p:password value="#{backing.buyer.passWrd1}" label="Password" id="pass1" />
<f:facet name="footer">
<p:commandButton type="submit" value="Login" actionListener="#{backing.checkLogin}" />
</f:facet>
</p:panelGrid>
<p:spacer height="2" />
<p:panelGrid id="newUser" columns="4">
<f:facet name="header">
New User
</f:facet>
<p:inputText value="12345" />
</p:panelGrid>
</h:panelGroup>
<h:panelGroup id="buyer" rendered="false">
yet again
</h:panelGroup>
</h:form>
</h:body>
</html>
断点位于commandButton中页脚部分的panelGrid knownUser中。我删除了所有原始代码,并为newUser panelGrid留下了一个inputText框。这是踢球者:如果我将值=“12345”作为初始值并按下命令按钮,它确实会达到断点。但是,如果我将value =“”或值指向当前为空的辅助bean值,则它不会达到断点。
由于目的是让现有用户登录,因此强迫他填写与他无关的信息是不可接受的。更重要的是,无论如何,如果面板网格中的信息没有连接到我按下的命令按钮,为什么它应该有任何区别呢?我假设同时显示2个面板网格是合法的吗?在任何情况下,我都会对可能出现的问题提出任何建议。
谢谢, 伊兰
答案 0 :(得分:0)
原因可能是验证或转换失败。然后你的听众将无法联系到。在页面的某处放置一个h:messages
标记,看看是否属于这种情况。标签将显示转换和验证错误。