Fórum Erro ao tentar criar Um componente a partir do FACELET e utilizá-lo! #416481

09/05/2012

0

Neste xhtml eu tento usar este o componente que eu criei:

01 ?xml version=1.0 encoding=UTF-8 ?>
02 <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
03 <html xmlns=http://www.w3.org/1999/xhtml
04 xmlns:h=http://java.sun.com/jsf/html
05 xmlns:f=http://java.sun.com/jsf/core
06 xmlns:ui=http://java.sun.com/jsf/facelets
07 xmlns:a4j=http://richfaces.org/a4j
08 xmlns:rich=http://richfaces.org/rich
09 xmlns:com=http://oracle.com> Erro aqui: taglib do componente criado. Erro:NLS missing message:CANNOT_FIND_FACELET_TAGLIB org.eclipse.jst.jsf.core.validation.internal.facelet.messages

10<ui:composition template=template/baseTemplateSelecioneProdutos.xhtml/>
11<head>
<ui:define name=javaScript>
<script language=javascript type=text/javascript src=js/funcoesGenericas.js>
</script>
</ui:define>
<ui:define name=titulo>Régis E-Commerce - #{msg.venda_selecaoProduto}</ui:define>
</head>
<ui:define name=cabecalho>
<com:componenteSelProdutosJSF id=componenteSelProdutos/>
</ui:define>


Configuração no web.xml:

<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>WEB-INF/components/tags/projeto1.taglib.xml</param-value>
</context-param>




conteúdo no projeto1.taglib.xml:

<?xml version=1.0?>
<!DOCTYPE facelet-taglib PUBLIC -//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN https://facelets.dev.java.net/source/browse/*checkout*/facelets/src/etc/facelet-taglib_1_0.dtd>
<facelet-taglib>
<namespace>http://oracle.com</namespace>
<tag>
<tag-name>componenteSelProdutosJSF</tag-name>
<source>WEB-INF/components/meuComponente.xhtml</source>
</tag>
</facelet-taglib>




componente criado: meuComponent.xhtml:

<?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:h=http://java.sun.com/jsf/html
xmlns:ui=http://java.sun.com/jsf/facelets>
<ui:component>
<h:form>
<h:inputText id=# value=# required=true requiredMessage=Este campo obrigatório />
<h:message for=# />
<h:commandButton value=Enviar />
</h:form>
</ui:component>
</html>


Está apresentando o erro na linha 09 -> xmlns:com=http://oracle.com>,
no arquivo onde eu tento usar o componente criado:
Erro apresentado(linha 09):
NLS missing message: CANNOT_FIND_FACELET_TAGLIB org.eclipse.jst.jsf.core.validation.internal.facelet.messages


Eu já atualizei o eclipse para a versão 3.7.2, a versão do Mojarra para a 2.1.7, a versão do facelets para jsf-facelets-1.1.9.jar, a versão jsf-impl-2.0.1.jar, a versão jsf-api-2.0.jar.
Eu já limpo o projeto. Fecho e abro o projeto. Saio do Eclipse e entro... E nada. O problema persiste!
O que pode ser este erro.
Há necessidade de configurar algo mais que eu não o fiz?
O arquivo projeto1.taglib.xml foi criado com o DOCTYPE errado?

Régis.
Régis Santos

Régis Santos

Responder

Posts

13/05/2012

Diogo Souza

Cara, pode não ser este o problema, mas a api jsf depende dos jars do JSTL...

Importou os mesmos no projeto?
Responder

Gostei + 0

14/05/2012

Régis Santos

javax.servlet.jsp.jstl-1.2.1.jar
jsf-facelets-1.1.15.jar
javax.faces-2.1.7.jar --mojarra
standard.jar

Eu coloquei estes jars na WEB-INF\lib do meu projeto.

Quando eu retiro um jar(jsf-facelets-1.1.15.jar) e coloco outra versão(jsf-facelets-1.1.14.jar) e aplico um CLEAn
Responder

Gostei + 0

14/05/2012

Régis Santos

Continuando:

Quando Eu troco os jars e aplico um CLEAN no projeto, as mensagens de erros desaparecem.

Então, desta forma, sempre eu estou tendo que fazer esta operação para que não haja erros e eu possa executar a minha aplicação normalmente.

Régis.
Responder

Gostei + 0

14/05/2012

Régis Santos

Eu não consegui rodar a aplicação sem ter que trocar algum jar, por exemplo um jar do facelets(versão 1.1.14 pela versão 1.1.15). Toda vez que abro o eclipse eu tenho que excluir uma versão do jar antiga e colocar uma nova ou excluir uma nova e incluir uma antiga e depois aplicar o CLEAN no projeto. Assim ele funciona. Eu preciso rodar a aplicação sem nenhum tipo de gambiarra.

Você pode me ajudar?

Régis.
Responder

Gostei + 0

15/05/2012

Robson Teixeira

se está usando JSF2 o facelet ja vem por padrão e ja implementado nos jar do JSF e quanto ao componente de onde está pegado
os valores de seu componente no caso o # e o # ????? como exemplo o codigo abaixo ja postado neste tópico???

<h:inputText id=# value=# required=true requiredMessage=Este campo obrigatório />
<h:message for=# />

att
robson
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar