espaços em branco com JSF

11 respostas
robson_vs

Tenho uma aplicação em jsf e gostaria de saber como faço para evitar q os usuários digitem no <h:inputText/> espaços em branco e retorne uma mensagem para o usuário.

para evitar q digite fiz o seguinte

if (action == null) {

			DepartamentoDelegate departamentoDelegate = new DepartamentoDelegate();

			if (departamentoVO.getNome().trim().length() > 1) {
				departamentoDelegate.salvar(departamentoVO);
				action = "success";
			} else {
				action = "caracteresInvalidos";
			}

			departamentoVO = new Departamento();
		} else {
			action = "failure";
		}

mais ele ñ notifica nada para o usuário, como devo fazer???

Valeu a todos

Robson

11 Respostas

R

Adiciona um <h:outputText> na página pra mostrar uma mensagem

Na página:

&lt;h:outputText value="bean.mensagem" /&gt;
No bean:

private String mensagem;

//getters and setters

E nesse método que vc criou vc setar um valor pra essa mensagem.

robson_vs

tem alguma forma para mim fazer isso e ñ perder o recurso de internacionalização???

R

Tem sim…

Locale currentLocale = FacesContext.getCurrentInstance().getViewRoot().getLocale();	    
ResourceBundle labels = ResourceBundle.getBundle(&lt;nome do arquivo&gt;, currentLocale);

mensagem = labels.getString(&lt;nome da chave&gt;);
robson_vs

Cara eu fiz o seguinte

if (departamentoVO.getNome().trim().length() > 1) {
				Locale currentLocale = FacesContext.getCurrentInstance()
						.getViewRoot().getLocale();
				ResourceBundle labels = ResourceBundle.getBundle(
						"messages.properties", currentLocale);

				mensagem = labels.getString("textoCaractererInvalido");

				departamentoDelegate.salvar(departamentoVO);
			}

mais ñ rolou onde estou errando???

R

O que está dando errado?

robson_vs

Então cara é o seguinte ele ñ grava mais ñ dá mensagem nenhuma

robson_vs

então coloquei assim

if (departamentoVO.getNome().trim().length() > 1) {
				departamentoDelegate.salvar(departamentoVO);
			} else {
				Locale currentLocale = FacesContext.getCurrentInstance()
						.getViewRoot().getLocale();
				ResourceBundle labels = ResourceBundle.getBundle(
						"messages.properties", currentLocale);

				mensagem = labels.getString("textoCaractererInvalido");
			}

e ta me dando esta mensagem de erro

23/10/2006 09:14:26 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.FacesException: Error calling action method of component with id _idJsp28:gravarDepartamento
	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
	at javax.faces.component.UICommand.broadcast(UICommand.java:106)
	at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
	at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at br.com.greenline.falegreen.util.LoginFilter.doFilter(LoginFilter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{DepartamentoBean.incluirDepartamentos}
	at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)
	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
	... 26 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name messages.properties, locale pt_BR
	at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:805)
	at java.util.ResourceBundle.getBundle(ResourceBundle.java:576)
	at br.com.greenline.falegreen.managedbean.DepartamentoBean.incluirDepartamentos(DepartamentoBean.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
	... 27 more
23/10/2006 09:14:26 javax.faces.webapp.UIComponentTag setupResponseWriter
SEVERE: Faces context not found. getResponseWriter will fail. Check if the FacesServlet has been initialized at all in your web.xml.
23/10/2006 09:14:27 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
	at javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:929)
	at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:310)
	at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:70)
	at org.apache.jsp.pageNotFound_jsp._jspx_meth_f_view_0(pageNotFound_jsp.java:117)
	at org.apache.jsp.pageNotFound_jsp._jspService(pageNotFound_jsp.java:91)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)
	at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:212)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
23/10/2006 09:14:27 org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/pageNotFound.jsp]
org.apache.jasper.JasperException
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)
	at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:212)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
R

não faltou dar o retorno do método?

a String de sucesso ou falha usada nas regras de navegação

TLCC

tire a extensao .properties do arquivo

robson_vs

Deu certo era a extenção do arquivo mesmo valeu a todos aprendi mais uma muito boa i importânte agora vakleu mesmo;

S

PQP que lixo. Estou com o mesmo problema. :x
JSF sux

Criado 20 de outubro de 2006
Ultima resposta 22 de jan. de 2007
Respostas 11
Participantes 4