Jsf 警告:此页调用XML命名空间http://www.facebook.com/2008/fbml 使用前缀fb声明,但该命名空间不存在taglibrary
我正在使用Javascript开发一个FB登录网站的应用程序。我试过html,效果很好。当我转换成JSF时,它给出了一个错误 这是我的Jsf 警告:此页调用XML命名空间http://www.facebook.com/2008/fbml 使用前缀fb声明,但该命名空间不存在taglibrary,jsf,facebook-javascript-sdk,facelets,Jsf,Facebook Javascript Sdk,Facelets,我正在使用Javascript开发一个FB登录网站的应用程序。我试过html,效果很好。当我转换成JSF时,它给出了一个错误 这是我的fbLogin.xhtmlcode <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
fbLogin.xhtml
code
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:fb="http://www.facebook.com/2008/fbml">
<h:head>
<title>FB Login</title>
<link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/>
</h:head>
<h:body styleClass="ice-skin-rime">
<fb:login-button scope="email"></fb:login-button>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<APP_ID>',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
showMe = function(response) {
if (response.status !== 'connected') {
div.innerHTML = '<em>Not Connected</em>';
} else {
FB.api('/me', function(response) {
var i=0;
for (var key in response) {
i++;
switch(i){
case 1: document.getElementById("formId:id").value=response[key]; break;
case 2: document.getElementById("formId:name").value=response[key]; break;
case 5: document.getElementById("formId:link").value=response[key]; break;
case 6: document.getElementById("formId:userName").value=response[key]; break;
case 19: document.getElementById("formId:email").value=response[key]; break;
}
}
});
}
};
FB.getLoginStatus(function(response) {
showMe(response);
FB.Event.subscribe('auth.authResponseChange', showMe);
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<h:form id="formId">
<table>
<tr><td><a>ID : <h:inputText id="id" value="#{fbLogin.id}" /> </a></td></tr>
<tr><td><a>Name : <h:inputText id="name" value="#{fbLogin.name}" /> </a></td></tr>
<tr><td><a>Link : <h:inputText id="link" value="#{fbLogin.link}" /> </a></td></tr>
<tr><td><a>User Name : <h:inputText id="userName" value="#{fbLogin.userName}" /> </a></td></tr>
<tr><td><a>E-Mail : <h:inputText id="email" value="#{fbLogin.email}" /> </a></td></tr>
<tr><td><h:commandButton value="Register" action="#{fbLogin.Display}" /></td></tr>
</table>
</h:form>
</h:body>
</html>
FB登录
window.fbAsyninit=函数(){
FB.init({
appId:“”,
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
//这里有额外的初始化代码
showMe=功能(响应){
如果(response.status!=“已连接”){
div.innerHTML='未连接';
}否则{
FB.api('/me',函数(响应){
var i=0;
for(var键响应){
i++;
开关(一){
案例1:document.getElementById(“formId:id”).value=response[key];break;
案例2:document.getElementById(“formId:name”).value=response[key];break;
案例5:document.getElementById(“formId:link”).value=response[key];break;
案例6:document.getElementById(“formId:userName”).value=response[key];break;
案例19:document.getElementById(“formId:email”).value=response[key];break;
}
}
});
}
};
FB.getLoginStatus(函数(响应){
showMe(回应);
FB.Event.subscribe('auth.authResponseChange',showMe);
});
};
//异步加载SDK
(职能(d){
var js,id='facebook jssdk',ref=d.getElementsByTagName('script')[0];
if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
ref.parentNode.insertBefore(js,ref);
}(文件);
身份证件:
姓名:
链接:
用户名:
电邮:
使用JSF编写代码的原因是,我需要将用户信息保存到backBean中,以便存储到数据库中
当我尝试运行此应用程序时,我在浏览器中收到以下警告:
警告:此页面调用XML命名空间http://www.facebook.com/2008/fbml 使用前缀fb声明,但该命名空间不存在标记库。
我的代码中的错误是什么?当您在webapp的
web.xml
中将javax.faces.PROJECT\u STAGE
设置为Development
,Facelets遇到一个无法解析为与JSF兼容的标记库的xml名称空间时,就会得到这个错误。显示此警告只是为了通知(正在起步的)开发人员XML名称空间中可能存在未预见的输入错误或标记库配置错误
然而,在这个特殊的例子中,所讨论的XML名称空间引用了外部的Facebook JavaScript API,而不是JSF标记库,如PrimeFaces、OmniFaces等。您的代码完全正确
你可以忽略这个警告。当您将JSF项目阶段设置回
Production
,或者删除整个上下文参数(默认为Production
)时,不会出现此警告。是的,我已按照您所说的更改了配置文件。现在问题是我的“”标记按钮没有显示在我的网页中。!!正如我在前面的评论中提到的,只需按下右上方的“提问”按钮。这个问题与目前提出的问题完全无关。