1

我有以下情况:

<h:form>
<h:panelGrid columns="2" cellpadding="5">
    <p:commandButton id="loginButton" value="Login" ajax="false"
                        action="#{login.loginAction}" />
</h:panelGrid>
</h:form>

当我单击该按钮时,将执行来自我的 bean 的方法 loginAction()。

如果我有:

<h:form>

    <h:panelGrid columns="2" cellpadding="5">

        <h:outputLabel for="username" value="#{labels.UserName}" />
        <p:inputText value="#{login.username}" id="username"
                                required="true" />

        <p:commandButton id="loginButton" value="Login" ajax="false"
                        action="#{login.loginAction}" />
    </h:panelGrid>
</h:form>

在这种情况下,当我按下登录按钮时,方法 loginAction() 没有被调用,我不明白为什么。用户名的设置器被调用,但 loginAction 没有。

我正在使用 JSF 2.0,Primefaces 3.3。

非常感谢你。

4

2 回答 2

3

我假设您在控制台中也没有收到错误,对吧?如果是这种情况,我建议<p:messages autoUpdate="true" />在您的表单中添加以查看是否存在一些验证错误或其他问题。

于 2012-07-26T20:35:12.407 回答
0

如果我使用

<h:commandButton id="loginButton" value="Login" ajax="false"
                        action="#{login.loginAction}" />

方法 loginAction 被调用。

我将使用 h:commandButton 而不是 p:commandButton。

于 2012-07-27T07:37:25.813 回答