1

2つのprimeFacespanelGridボックスを配置しようとしています。1つは既存のユーザー用で、もう1つは新しいユーザー用です。ブレークポイントに到達しなくなったことに気づき、何が起こったのか理解できませんでした。ソースコードが再び機能し始めるまで、ソースコードから物事を切り取り始めました。

私は完全に私を困惑させる最も奇妙なものを見つけました、そして私は誰かが私に与えることができるどんなヒントでもありがたいです。バッキングBeanには、主にゲッターとセッターがあり、ログインをチェックするロジックのほんの始まりにすぎません(この段階では基本的に何もありません)。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のフッターセクションのpanelGridknownUserにあります。元のコードをすべて切り取り、newUserpanelGrid用に1つのinputTextボックスを残しました。これがキッカーです。初期値にvalue="12345"を入力してコマンドボタンを押すと、実際にブレークポイントに到達します。ただし、value = ""または現在空白のバッキングBean値を指す値を入力すると、ブレークポイントに到達しません。

既存のユーザーがログインすることを目的としているため、自分に関係のない情報を入力するように強制することはできません。さらに重要なのは、私が押しているコマンドボタンに接続されていない情報がパネルグリッドにある場合、なぜそれが何らかの違いを生む必要があるのでしょうか?2つのパネルグリッドを同時に表示することは合法だと思いますか?いずれにせよ、何が間違っているのかについての提案をいただければ幸いです。

ありがとう、イラン

4

1 に答える 1

0

検証または変換が失敗したことが原因である可能性があります。その後、リスナーに到達しません。h:messagesページのどこかにタグを付けて、そうであるかどうかを確認してください。タグには、変換エラーと検証エラーが表示されます。

于 2012-04-22T11:26:20.993 に答える