Estou passando um codigo por uma string mais ao invez de ele “fazer” o que deve fazer fica em forma de texto, vai ser mais facil vendo o exemplo .
public class testeAtividade{
private String PalavraRetorno = "<h:outputText value=\"esta passando ok\"></h:outputText>";
public String getPalavraRetorno(){
return PalavraRetorno;
}
}
isso é o que eu passo , só que dae quando eu chamo o metodo de get, ele até aparece no portal, não do jeito que é pra ser , qeu é o texto : (esta passando ok), ele aparece assim , (<h:outputText value=“esta passando ok”></h:outputText>), ou seja , ele nao interpreta.
Oproblema de colocar direto, é que vai ser tudo dinamico, ou seja, ele vai gera o codigo na hora, por exemplo o cara gerou no meu programa uma interface com botões e labels, dae ele pega e gera uma interface em JSF, só que o problema é que eu estou passando por uma string antes de tudo, e esta string nao interpreta como uma linguegem de “JSF” e sim como uma texto qualquer .
Quero saber como que eu faço para ele se tornar normal, ou melhor fique interpretado mesmo .
Pessoal , em relação a minha duvida eu achei mais uma coisa que pode ajudar na resolução do problema.
Primeiramente ele estava escrevendo, porque eu estatava colocando o que eu queria no meu codigo dentro de um outputText.
Assim:
<div style="background-color:rgb(240,240,240);">
<label> Numero de Ocorrencias </label><br/>
<label>Atividade X Y</label>
<h:inputText value="#{APE_16_27_09_270.n_Ocorrencias}" />
<label>Atividade Conta</label>
<h:inputText value="#{APE_16_27_17_110.n_Ocorrencias}" />
<label>Atividade Regra</label>
<h:inputText value="#{APE_14_04_11_810.n_Ocorrencias}" />
---> <h:outputText value="#{testeAtividade.palavraRetorno}"></h:outputText> <---
</div>
e a classe que eu chamo ali esta assim.
public class testeAtividade{
private String PalavraRetorno = "<h:outputText value="Deve aparecer apenas este texto" />";
public String getPalavraRetorno(){
return PalavraRetorno;
}
}
Então eu acho que devo colocar dentro de uma div essa palavra retorno.
Só que como que eu vou pegar esse retorno da classe e colocar dentro de uma div ?
Sei que tenho que usar isso aqui ( #{nomeDaclasse.StringQueEuQuero} ) mas pra colocar dentro de uma div alguem sabe, pois nao tem como usar value que nem o “<h:outputText value=” #{nomeDaclasse.StringQueEuQuero} " .
E cria um método no bean testeAtividade chamado isRenderizaPalavra que retorne true quando for pra exibir a palavra e false caso contrário.
E o método getPalavraRetorno passa a retornar o que vc quer que seja exibido.
Vc não vai conseguir criar um componente JSF dinamicamente, visto que as tags JSF ou qualquer tag de uma taglib precisam ser processadas pelo container e/ou pelo framework antes de serem renderizadas. Uma opção seria seguir a dica do dsjbv, ou seja, esconder os componentes que não devem ser exibidos.