我正在使用JSF,并在Google Chrome中向我的index.html添加连接按钮,如下所示;
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ipp=""
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<f:view>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<script type="text/javascript"
src="https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js">
intuit.ipp.anywhere.setup({
menuProxy: 'http://com.example/dispatch/BlueDotMenu',
grantUrl: 'http://com.example/dispatch/RequestOAuthToken' });
</script> </h:head>
</f:view>
</html>
我得到了以下错误;
属性“xmlns:ipp”的值无效。带前缀的命名空间绑定可能不为空。
我可以使用名称空间值吗?
答案 0 :(得分:1)
我在这里找到了JSF的解决方法。为我工作。
您需要重写一下QBO为按钮和菜单功能提供的JavaScript文件。 你可以download it from here。
如果您已经实现了所有OAuth和内容,那么您只需要添加不带“ipp”前缀的标记。只需插入如下:
<connectToIntuit></connectToIntuit>
<blueDot></blueDot>
不需要名称空间。 JSF将忽略未知标记,JS可以将html和事件插入其中。
我也下载了easyUI JS from here。插入你已经下载的JS-es:
<script type="text/javascript" src="#{request.contextPath}/js/jquery/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="#{request.contextPath}/js/intuit.ipp.anywhere.js"></script>
需要插入不低于1.4.4的jQuery版本。
剩下的最后一件事是调用'setup'js-function:
<script>
intuit.ipp.anywhere.setup({
menuProxy: '#{request.scheme}://#{request.serverName}#{request.contextPath}/qb_blueDotMenu.jsf',
grantUrl: '#{request.scheme}://#{request.serverName}#{request.contextPath}/qb_requestToken.jsf'
});
</script>
其中 qb_blueDotMenu.jsf - 是呈现BlueDotMenu的servlet qb_requestToken.jsf - 是获取OAuth请求令牌的RequestTokenServlet,如QuickBooks Sample App中的show。
如果您有疑问,请告诉我。
答案 1 :(得分:0)
这可能已经晚了,但我遇到了同样的问题并通过显示带有
的ipp:connectToIntuit按钮解决了这个问题
<h:outputText value="#{bean.ippConnect}" escape="false" />