Seguinte minha duvida e na parte de estrutura de projeto, pois se que a tela .jsp ou .jsf só se relaciona com o ManagedBean (certo?), mas se minha página for fazer os sets nas Strings (que estao deveriam estar dentro de uma classe Model não é ?), (ex: <h:inputText value="#{MeuBean.String}"> ) no caso eu deveria setar na classe model (… #{MeuBean.model.String})???
E tenho uma página que deve retorna uma pesquisa feita em uma lista (Sem Banco de dados)a variaveis que irao setar as caixas de textos devem ficam no model ou no ManagedBean ???
Obrigado a quem puder ajudar!
q?
Pode ser um pouco mais claro? li 3 vezes e não consegui entender exatamente o ponto da dúvida )=
Ta bem bagunçado sua questão mas vai al…
Sim…desde que estas extensões sejem para o srevlet do JSF.
[quote]mas se minha página for fazer os sets nas Strings (que estao deveriam estar dentro de uma classe Model não é ?), (ex: <h:inputText value="#{MeuBean.String}"> ) no caso eu deveria setar na classe model (… #{MeuBean.model.String})???
[/quote]
Pode ser sim…Vc faz a EL do JSF atribuir os valores direto para o modelo. Eu uso assim ha muitos anos.
[quote]E tenho uma página que deve retorna uma pesquisa feita em uma lista (Sem Banco de dados)a variaveis que irao setar as caixas de textos devem ficam no model ou no ManagedBean ???
[/quote]
Coloque no managebBean todas as informações de controle de tela…ou seja VIEW
O modelo não pode ter controles de tela…dele deve ser independente dela…uma vez que vc pode reutilizado em outros contextos.
Vamos por partes.
Quando diz-se que a view (jsp/xhtml/jsf) só se relaciona com o ManagedBean, é fato.
Toda classe possui atributos que, podem ser simples primitivos (int, bool, char) ou classes (String, Integer, Float, HttpSession, File).
Os atributos de uma classe que, por sua vez sejam classes, também possuem atributos e métodos (como o toUpperCase da String, o parseInt do Integer).
Como o ManagedBean poderá ter atributos de leitura de arquivos, por exemplo, quando você coloca
<h:inputText value="#{managedBean.objetoDeOutraClasse.valorQualquer}"/>
você está falando apenas com o ManagedBean e não com a classe ObjetoDeOutraClasse, embora ela seja uma classe, ainda assim, está dentro do ManagedBean como sendo um atributo (para que funcione, precisará existir o getObjetoDeOutraClasse e o setObjetoDeOutraClasse).
[quote=drsmachado]Vamos por partes.
Quando diz-se que a view (jsp/xhtml/jsf) só se relaciona com o ManagedBean, é fato.
Toda classe possui atributos que, podem ser simples primitivos (int, bool, char) ou classes (String, Integer, Float, HttpSession, File).
Os atributos de uma classe que, por sua vez sejam classes, também possuem atributos e métodos (como o toUpperCase da String, o parseInt do Integer).
Como o ManagedBean poderá ter atributos de leitura de arquivos, por exemplo, quando você coloca
<h:inputText value="#{managedBean.objetoDeOutraClasse.valorQualquer}"/>
você está falando apenas com o ManagedBean e não com a classe ObjetoDeOutraClasse, embora ela seja uma classe, ainda assim, está dentro do ManagedBean como sendo um atributo (para que funcione, precisará existir o getObjetoDeOutraClasse e o setObjetoDeOutraClasse).[/quote]
No caso se eu instacio um objeto model no managedBean para setar os valores, quando vou usar na classe DAO preciso criar um novo objeto model e assim ira sobreescrever os dados antigos, como eu seto os valores no managedBean e mantenho - os na classe dao ?
Não.
Você precisa de um objeto do tipo TO (transfer object).
Com ele você pode transitar da camada view até a DAO sem problemas e, ainda assim, mantendo os dados do bean em questão