Olá nao sei pq nao esta funcionando compila sem erro, roda mais nao exibe o valor.
xhtml
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:p="http://primefaces.org/ui"><h:head><title>Gerenciador de Livros</title></h:head><h:body><h:outputTextvalue="#(testeBean.nome)"/></h:body></html>
Bean
importjavax.annotation.ManagedBean;importjavax.faces.bean.ViewScoped;@ManagedBean("testeBean")@ViewScoped/** * * @author Hudson */publicclassTesteBean{privateStringnome;publicTesteBean(){this.nome="Hudson Schumaker";}/** * @return the nome */publicStringgetNome(){returnnome;}/** * @param nome the nome to set */publicvoidsetNome(Stringnome){this.nome=nome;}}
Estou usando o Netbeans 7.1.2 vou baixar o 7.2 completo… tinha visto q nao tem o arquivo faces-config.xml achei q era isso mais buscando na internet li que na versão 2.0 do JSF nao eh mais necessario
fabiozanardi
Tente rodar a app no jboss ou no glassfish só para ver se o erro persiste
já vi algumas pessoas tendo problemas rodando app em jsf/primefaces no tomcat
JJjava
vou tentar isso…
fabiozanardi
referente ao face-config.xml, eu normalmente crio o arquivo, embora não seja mais obrigatorio, tem algumas configurações que precisam ser colocadas nele.
como você não está utilizando CDI, o beans.xml não precisa ser criado.
qualquer duvida estamos ai
abraço
JJjava
Funcionou agora como glassfish…
JJjava
oq isso significa?
Advertência: Definindo valor de atributo não serializável em ViewMap (chave: TesteBean, classe do valor: TesteBean).
fabiozanardi
Agora é só você implementar serializable no bean:
@ManagedBean("testeBean")@ViewScopedpublicclassTesteBeanimplementsSerializable{privatestaticfinallongserialVersionUID=1L;//resto do codigo
JJjava
aproveitando o topico como faço para validar o retorno de uma função do bean? para que possa fazer um forward para home.xhtml por exemplo e como fica a questao de sessoes?
packageuser;importjava.util.Collection;importjavax.faces.application.FacesMessage;importjavax.faces.bean.ApplicationScoped;importjavax.faces.bean.ManagedBean;importjavax.faces.context.FacesContext;importorg.primefaces.event.SelectEvent;importorg.primefaces.event.UnselectEvent;@ManagedBean(name="userManagedBean")@ApplicationScopedpublicclassUserManagedBean{UserServiceuserService=newUserService();privateStringusername;privateStringpassword;privateStringsearchUser;privateCollection<User>searchUsersResults;privateUserselectedUser;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicUsergetSelectedUser(){if(selectedUser==null){selectedUser=newUser();}returnselectedUser;}publicvoidsetSelectedUser(UserselectedUser){this.selectedUser=selectedUser;}publicCollection<User>getSearchUsersResults(){returnsearchUsersResults;}publicvoidsetSearchUsersResults(Collection<User>searchUsersResults){this.searchUsersResults=searchUsersResults;}publicStringgetSearchUser(){returnsearchUser;}publicvoidsetSearchUser(StringsearchUser){this.searchUser=searchUser;}publicStringlogin(){if("test".equalsIgnoreCase(getUsername())&&"test".equals(getPassword())){return"home";}else{FacesContextcontext=FacesContext.getCurrentInstance();context.addMessage("username",newFacesMessage("Invalid UserName and Password"));return"login";}}publicStringsearchUser(){Stringusername=(this.searchUser==null)?"":this.searchUser.trim();this.searchUsersResults=userService.searchUsers(username);System.out.println(searchUsersResults);return"home";}publicStringupdateUser(){userService.update(this.selectedUser);return"home";}publicvoidonUserSelect(SelectEventevent){}publicvoidonUserUnselect(UnselectEventevent){}}
fabiozanardi
não entendi, que tipo de validação do retorno? e que problema tem com as sessões?
JJjava
fabiozanardi:
não entendi, que tipo de validação do retorno? e que problema tem com as sessões?
como vou pegar o retorno da função na chamada action="#{userManagedBean.login}" para fazer o foward
em relção a session quero saber se em JFS o uso e igual ao de JSF
o SessionScoped dura até que seja invalidada por algum método, ou se voce fechar o navegador e abrir novamente
JJjava
Mais uma pergunta
quando quero dar um get a um valor do Bean uso
value="#{mail.subject}"
quando quero dar um set a um valor uso
binding="#{mail.subject}"
estou tendo problemas pq nao aceita String ai se uso HttpInputText na hora q dou o toString nele vai o endereço da memoria.,
Como resolvi isso?
fabiozanardi
o binding é muito custoso para a aplicação, evite utilizar ao máximo.
poste o erro do console para darmos uma olhada no erro que dá na hora de passar a String.
flw
JJjava
nao consigo ver o log do erro agora mais eh alguma coisa relacioan q nao podia converter HtmImputtext pata String
ai depois mudei no beans de string para HtmlImputtext so qu quando vou fazer alguam coisa tipo salva no banco ou usar o valor dessas variveis desse vem op endereço de memoria…
packagemail;importjava.util.Properties;importjavax.faces.bean.ManagedBean;importjavax.faces.bean.ViewScoped;importjavax.faces.component.html.HtmlInputText;importjavax.faces.component.html.HtmlInputTextarea;importjavax.mail.Message;importjavax.mail.MessagingException;importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail.internet.AddressException;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;/** * * @author bp12214 */@ManagedBean(name="mail")@ViewScopedpublicclassSendMail{privateStringfrom;privateHtmlInputTextto;privateHtmlInputTextsubject;privateHtmlInputTextareamessage;privateStringpass;publicSendMail(){from="xxxxxxx";pass="xxxxxxx";}// public SendMail(String from, String to, String subject, String message) {// this.from = from;// this.to = to;// this.subject = subject;// this.message = message;// pass = "xxxxxx";// }publicvoidsend(){try{Propertiesprops=newProperties();props.put("mail.smtp.host",??????????????"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.starttls.enable", "true"); Session s = Session.getDefaultInstance(props, new Autenticar(getFrom(), getPass())); MimeMessage email = new MimeMessage(s); InternetAddress de = new InternetAddress(getFrom()); email.setFrom(de); InternetAddress para = new InternetAddress( String.valueOf(getTo().toString())); email.addRecipient(Message.RecipientType.TO, para); email.setSubject(getSubject().toString()); email.setText(getMessage().toString()); Transport.send(email); } catch (AddressException ex) { System.out.println("Adress:" + ex); } catch (MessagingException ex) { System.out.println("Message:" + ex); } } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public HtmlInputText getTo() { return to; } public void setTo(HtmlInputText to) { this.to = to; } public HtmlInputText getSubject() { return subject; } public void setSubject(HtmlInputText subject) { this.subject = subject; } public HtmlInputTextarea getMessage() { return message; } public void setMessage(HtmlInputTextarea message) { this.message = message; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; }}
email
Delivery has failed to these recipients or groups:
javax.faces.component.html.HtmlInputText@3047dea7
JJjava
postei ai oq vc pediu…
fabiozanardi
tente fazer assim:
Ao invés de binding="…" nos campos utilize value="#{mail.to}" e assim por diante nos outros campos
2.volte os atributos para String no managed bean
no metodo do bean send(), coloque apenas 1 system.out.printline(variaveis) para os valores das variaveis e veja como chega no console. (comente o resto do codigo)