2012-04-22 48 views
1

我想搭建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在页脚部分的commandButton中。我砍掉了所有原始代码,并为newUser panelGrid留下了一个inputText框。这里是踢球者:如果我将value =“12345”作为初始值,然后按下命令按钮,它确实会击中断点。但是,如果我把value =“”或值指向一个当前空白的后备bean值,它不会达到中断点。

由于目的是让现有的用户登录,强迫他填写与他无关的信息是不可接受的。更重要的是,为什么它应该有所作为,如果面板网格中没有连接到我正在按下的命令按钮的信息?我认为在同一时间显示2个面板网格是合法的?无论如何,我将不胜感激任何可能出错的建议。

感谢, 宜兰

回答

0

的原因可能是验证或转换失败。那么你的听众将无法到达。将h:messages标记放置在您网页的某处,以查看是否属于这种情况。标签将显示转换和验证错误。

+0

谢谢马特。你基本上是正确的,但要发现问题是长期的。事实证明,如果我把value =“”它不会到达断点,因为这在某种程度上是不正确的。我只是为了调试而做,但这是一件坏事。我最初的价值被钩到了一个支持豆。这里是你的猜测是正确的:我的一个条目需要输入,这是造成问题的原因。太糟糕了,我已经迷上了这么长时间的调试问题。 – 2012-04-23 09:21:12

+0

开发过程中,在web.xml中将'javax.faces.PROJECT_STAGE'设置为'Development'总是好的。这会为每个显示所有验证和转换错误的页面添加一个额外的消息标记。 – 2012-04-23 09:27:30

+0

感谢您的提示。我不知道这样的事情。我看到Netbeans将其作为Development开发,但知道它非常重要。我仍处于倾斜曲线的上坡。 – 2012-04-23 12:25:08

相关问题