有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

单击提交按钮时的java重定向由于某些原因被阻止。(JSF2.0)

我的一张表格有一个很奇怪的问题

我有一个表单,可以注册用户并向他/她发送电子邮件。想用新的验证码替换我的旧验证码。一切都进行得很顺利,但当我点击提交按钮时(验证码输入正确),数据保存在数据库中,电子邮件被发送,但我没有被重定向到目标页面。我只给你看一点代码,这样你就知道我在说什么了:

这是我刚刚在表单中添加的组件

<p:captcha label="Captcha" language="en" theme="white" publicKey="6Ld7pMESAAAAAHd1VihJkqPUXAJVwU3Cghc8fzrq"/> 
            <h:commandButton value="Registruj"
                    actionListener="#{registrationControllerBuyer.doRegisterBuyer}"/>

此外,我还在web上添加了一些配置。xml:

<!-- keys gotten from recaptcha -->
<context-param>
    <param-name>primefaces.PUBLIC_CAPTCHA_KEY</param-name>
    <param-value>6Ld7pMESAAAAAHd1VihJkqPUXAJVwU3Cghc8fzrq</param-value>
</context-param>

<context-param>
    <param-name>primefaces.PRIVATE_CAPTCHA_KEY</param-name>
    <param-value>6Ld7pMESAAAAAMhr5WSk5bcRrff8Y08NtDi8Buoq</param-value>
</context-param>

这是按钮处理程序的java部分:

public String doRegisterBuyer() throws Exception {
    Buyer buyer = new Buyer();
    buyer.setName(getName());
    buyer.setSecondName(getSecondName());
    buyer.setNickName("not specified");
    buyer.setEmail(getEmail());
    buyer.setPassword(getPassword());
    buyer.setAcceptedTermsAndConditions(isAcceptedTermsAndConditions());
    buyer.setNewsletterSubscription(isNewsletterSubscription());
    buyer.setAccountStatus(AccountStattus.CREATED.toString());      

    Buyer tmpBuyer = tmpBuyer = buyersRegistratorEJB.createBuyer(buyer);

    // Send activation link to user
    emailServiceEJB.sendAccountActivationLinkToBuyer(tmpBuyer.getEmail()
            .trim(), tmpBuyer.getName());
    return "registrationSucceded.xhtml";
}

验证码似乎工作得很好: -如果我对验证码输入错误,则不会执行doRegisteredBuyer()方法 -如果我得到正确的验证码输入,方法doRegisteredBuyer()确实会执行,但我不会被重定向到registrationSucceded。xhtml

为什么(页面名称正确,已经检查过几次:)


共 (1) 个答案

  1. # 1 楼答案

    您需要的是action,而不是actionListener

    <h:commandButton value="Registruj" action="#{registrationControllerBuyer.doRegisterBuyer}"/>
    

    另请参见: