我正在尝试放置 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>
断点位于命令按钮的页脚部分的 panelGrid knownUser 中。我删除了所有原始代码并为 newUser panelGrid 留下了一个 inputText 框。这是踢球者:如果我将 value="12345" 作为初始值并按下命令按钮,它确实会达到断点。但是,如果我将 value="" 或 value 指向当前为空的支持 bean 值,它将不会达到断点。
由于目的是让现有用户登录,强迫他填写与他无关的信息是不可接受的。更重要的是,如果面板网格中的信息未连接到我正在按下的命令按钮,为什么无论如何它会有什么不同?我假设同时显示 2 个面板网格是合法的吗?无论如何,我将不胜感激有关可能出现问题的任何建议。
谢谢,伊兰