首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JSF的条带结账费用:表单提交两次

使用JSF的条带结账费用:表单提交两次
EN

Stack Overflow用户
提问于 2018-07-26 03:59:57
回答 1查看 283关注 0票数 1

表单被提交了两次: 1.在页面加载时2.当用户单击Checkout按钮时

我想避免第一次提交,它抛出了一个错误,因为返回的令牌为空: com.stripe.exception.InvalidRequestException: Invalid source object:必须是字典或非空字符串。请参阅https://stripe.com/docs';request-id: req_DjRbT4rGULYGnB上的API文档

遵循文档,我在XHTML中添加了以下代码:

代码语言:javascript
复制
<div>
<form submit="#{studentBean.chargeStudent()}" method="POST">
                <script
                    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                    data-key="pk_test_xxxxxx"
                    data-amount="111"
                    data-name="myApp"
                    data-description="Example charge"
                    data-zip-code="true"
                    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
                    data-locale="auto">
                </script>
            </form>
</div>

下面是我的托管Bean的函数:

代码语言:javascript
复制
@Named
@ViewScoped
public class StudentBean implements Serializable {

@EJB
StripeChargeLogic stripeChargeLogic;

public void chargeStudent(){
    Map<String,String> requestParams = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

    logger.info("charge:" + requestParams.get("stripeToken"));

    stripeChargeLogic.chargeStudent(requestParams.get("stripeToken"));
}
}

谁能指导我为什么表单被提交两次,以及如何在页面加载过程中防止提交谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 04:50:17

这里你不是在做JSF,你得到的是普通的html,很可能(但从你的帖子中看不清楚)在一个xhtml/facelets文件中,而不是jsf中。

在表单操作中,您有一个EL,因为它与jsf没有任何关系,它在页面加载时被调用,有点类似于here

其他的行为也因此变得更加“不确定”。退一步,学习web技术和jsf的基础知识,然后再看看您的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51526799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档