<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "Minha msg. de erro para o field não aparece."]]></title>
		<link>http://forum.mentaframework.org/posts/list/3.page</link>
		<description><![CDATA[Latest messages posted in the topic "Minha msg. de erro para o field não aparece."]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Boa tarde!

Bom estou ainda tentando utilizar a msg. de erro para o field. Só que não aparece nada quando eu simulo o erro (field vazio). Quando eu utilizo a função addError(MEU_ERRO, MessageContext) ele funciona legal mas não para o field é claro.

Estou utilizando a ver. 1.0.1.

Segue o código:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>

public String execute&#40;&#41; throws ActionException {
                String usuario = input.getStringValue&#40;"username"&#41;;
		String senha = input.getStringValue&#40;"senha"&#41;;
		if &#40;usuario==null || usuario.trim&#40;&#41;.equals&#40;""&#41;&#41;
		{
			addError&#40;"username",USERNAME_BLANK&#41;;
			return ERROR;
		}
		if &#40;senha==null || senha.trim&#40;&#41;.equals&#40;""&#41;&#41;
		{
			addError&#40;"senha", PASS_BLANK&#41;;
			return ERROR;
		}
		output.setValue&#40;"username",usuario&#41;;
		output.setValue&#40;"senha",senha&#41;;
		addError&#40;MESSAGE,MSG_CONTEXT&#41;;
		return SUCCESS;
}
</pre>
		</div>

Um abraço!]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#46</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#46</link>
				<pubDate><![CDATA[Wed, 20 Jul 2005 13:07:14]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Vc está usando:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
&lt;mtw:hasError&gt;

&lt;h1&gt;&lt;mtw:error field="username"/&gt;&lt;/h1&gt;

&lt;/mtw:hasError&gt;

</pre>
		</div>

???]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#47</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#47</link>
				<pubDate><![CDATA[Wed, 20 Jul 2005 13:34:22]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Realmente eu não tinha colocado a tag certa   :oops: 

Como estou fazendo todos os exemplos e o de Dynamic Messages já está funcionando,  passei para a o próximo passo que é o VOFilter. Não entendi muito  bem o tutorial. Parece ser simples de mais e não estou acreditando muito rs...

Pelo o que eu pude entender, eu preciso passar como parametro a classe do meu bean (no caso é User) para a função Action.addFilter. Depois de passar pelo filtro, a action é acionada. Na action eu pego o VO no input com o nome da classe (inclusive o pacote).

Até ai acredito que eu esteja certo. O problema é quando vou testar os valores do objeto. Quando eu pergunto se o objeto que eu recuperei do input é null ele passa direto. Mas quando eu tento recuperar os atributos do meu VO ele diz que estão nulos.

Alguma sugestão?




<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
package teste.menta.action;

import org.mentawai.core.ActionException;
import org.mentawai.core.BaseAction;
import org.mentawai.message.ClassMessageContext;
import org.mentawai.message.MessageContext;

import teste.menta.beans.User;

public class Hello extends BaseAction {
	private static final MessageContext MSG_CONTEXT = new ClassMessageContext&#40;Hello.class&#41;;
	private static final int USERNAME_BLANK=1;
	private static final int PASS_BLANK=2;
	private static final int MESSAGE=3;
	private static final int ERRO=4;
	
	public String execute&#40;&#41; throws ActionException {
			
		User user = &#40;User&#41;input.getValue&#40;"teste.menta.beans.User"&#41;;
		if &#40;user==null&#41; 
		{
			//addError&#40;ERRO, MSG_CONTEXT&#41;;
			return ERROR;	
		}
		
		if &#40;user.getName&#40;&#41;==null&#41;
			{
			addError&#40;USERNAME_BLANK,MSG_CONTEXT&#41;;
			return ERROR;
			}			
		if &#40;user.getPass&#40;&#41;==null&#41; 
			{
				addError&#40;PASS_BLANK,MSG_CONTEXT&#41;;
				return ERROR;
			}
		output.setValue&#40;"user",user&#41;;
		addMessage&#40;MESSAGE&#41;;
		return SUCCESS;
	}

}</pre>
		</div>]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#48</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#48</link>
				<pubDate><![CDATA[Wed, 20 Jul 2005 14:17:43]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Vc está fazendo alguma coisa errada. Pode ser:

 :arrow: Como está o nome do seu parametro Name por exemplo ??? Tem que ser name para chamar o método setName (ou a variável name se estiver injetando direto no atributo privado, sem setter)

 :arrow: Como vc está setando o VOFilter ??? Sabia que vc pode indicar no filtro o nome que vc quer que esse objeto tenha no input ? Assim:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
ac.addFilter&#40;new VOFilter&#40;User.class, "user"&#41;&#41;;
</pre>
		</div>

Me avise o que era !

]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#49</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#49</link>
				<pubDate><![CDATA[Wed, 20 Jul 2005 16:57:23]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Bom vou colocar o código do meu Bean:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
public class User {
	private String name;
	private String pass;	
	
	/**
	 * @param name
	 * @param pass
	 */
	public String getName&#40;&#41; {
		return name;
	}
	public void setName&#40;String name&#41; {
		this.name = name;
	}
	public String getPass&#40;&#41; {
		return pass;
	}
	public void setPass&#40;String pass&#41; {
		this.pass = pass;
	}
}
</pre>
		</div>

Acredito que não tenha nada de errado. Também utilizei o parametro no construtor do VOFilter para setar o nome do meu objeto. Até agora não funcionou...


Help!]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#60</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#60</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 09:15:07]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Como estão os parametros no formulário html ?

O VOFilter está testado e funciona muito bem. Vc está fazendo algo errado aí !!!  :cry: 
]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#61</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#61</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 09:19:06]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Com certeza é algo que estou errando. Eu testei o exemplo VOFilter.war e rodou redondo.

Segue minha jsp:

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
&lt;%@ taglib uri="WEB-INF/lib/mentawai.jar" prefix="mtw"%&gt;
&lt;mtw:useI18N /&gt;
&lt;html&gt;
&lt;body&gt;
	
	&lt;h1&gt;&lt;mtw:i18n key="ola"/&gt; Mentawai!&lt;/h1&gt;
	&lt;form action="Hello.mtw" method="post"&gt;
		&lt;mtw:i18n key="nome"/&gt; &lt;input type="text" name="username" size="25"/&gt;&lt;br&gt;&lt;/br&gt;
		&lt;mtw:hasError&gt;
			&lt;h5&gt;&lt;font color="red"&gt;&lt;mtw:error field="username"/&gt;&lt;/font&gt;&lt;/h5&gt;&gt;
		&lt;/mtw:hasError&gt;
		&lt;mtw:i18n key="senha"/&gt;&lt;input type="password" name="senha" size="25"/&gt;&lt;br&gt;
		&lt;mtw:hasError&gt;
			 	&lt;h5&gt;&lt;font color="red"&gt;&lt;mtw:error field="senha"/&gt;&lt;/font&gt;&lt;/h5&gt;&gt;&gt;
		&lt;/mtw:hasError&gt;			
		&lt;input type="submit" value="Enviar"/&gt;
	&lt;/form&gt;
	
&lt;/body&gt;


&lt;/html&gt;
</pre>
		</div>]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#63</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#63</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 09:35:04]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ É o que eu suspeitei!

Os nomes dos seus parametros não batem com o do seu bean.

setUser requer user

setPass requesr pass

Entendeu ?

Mude de um lado ou do outro. O importante é que eles fiquem iguais.

Ex:

parametro casa vai procurar por setCasa

Abraço!
]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#64</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#64</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 09:39:24]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Olá Sergio,

Ainda não consegui...  :shock: 

Vou colocar todo o código alterado para você ver onde eu devo estar errando...

Minha Action

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
public class Hello extends BaseAction {
	private static final MessageContext MSG_CONTEXT = new ClassMessageContext&#40;Hello.class&#41;;
	private static final int USERNAME_BLANK=1;
	private static final int PASS_BLANK=2;
	private static final int MESSAGE=3;
	private static final int ERRO=4;
	
	public String execute&#40;&#41; throws ActionException {
			
		User user = &#40;User&#41;input.getValue&#40;"teste.menta.beans.User"&#41;;
		if &#40;user==null&#41; 
		{
			addError&#40;ERRO, MSG_CONTEXT&#41;;
			return ERROR;	
		}
		
		if &#40;user.getUsername&#40;&#41;==null&#41;
			{
			addError&#40;"username",USERNAME_BLANK,MSG_CONTEXT&#41;;
			return ERROR;
			}			
		if &#40;user.getPassword&#40;&#41;==null&#41; 
			{
				addError&#40;"password",PASS_BLANK,MSG_CONTEXT&#41;;
				return ERROR;
			}
		output.setValue&#40;"user",user&#41;;
		addMessage&#40;MESSAGE&#41;;
		return SUCCESS;
	}

}
</pre>
		</div>

Minha página onde eu digito o usuario e senha
<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
&lt;%@ taglib uri="WEB-INF/lib/mentawai.jar" prefix="mtw"%&gt;
&lt;mtw:useI18N /&gt;
&lt;html&gt;
&lt;body&gt;
	
	&lt;h1&gt;&lt;mtw:i18n key="ola"/&gt; Mentawai!&lt;/h1&gt;
	&lt;form action="Hello.mtw" method="post"&gt;
		&lt;mtw:i18n key="nome"/&gt; &lt;input type="text" name="username" size="25"/&gt;&lt;br&gt;&lt;/br&gt;
		&lt;mtw:hasError&gt;
			&lt;h5&gt;&lt;font color="red"&gt;&lt;mtw:error field="username"/&gt;&lt;/font&gt;&lt;/h5&gt;&gt;
		&lt;/mtw:hasError&gt;
		&lt;mtw:i18n key="senha"/&gt;&lt;input type="password" name="password" size="25"/&gt;&lt;br&gt;
		&lt;mtw:hasError&gt;
			 	&lt;h5&gt;&lt;font color="red"&gt;&lt;mtw:error field="password"/&gt;&lt;/font&gt;&lt;/h5&gt;&gt;&gt;
		&lt;/mtw:hasError&gt;			
		&lt;input type="submit" value="Enviar"/&gt;
	&lt;/form&gt;
	
&lt;/body&gt;


&lt;/html&gt;
</pre>
		</div>
Meu bean User

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>package teste.menta.beans;

public class User {
	
	private String username;
	private String password;
	
	public void setUsername&#40;String username&#41; {
		this.username = username;
	}
	
	public void setPassword&#40;String password&#41; {
		this.password = password;
	}
	
	public String getUsername&#40;&#41; {
		return username;
	}
	
	public String getPassword&#40;&#41; {
		return password;
	}
}
</pre>
		</div>
Meu ApplicationManager

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
public class AppManager extends ApplicationManager{
	public void loadLocales&#40;&#41; {
		super.loadLocales&#40;&#41;;
		
		LocaleManager.add&#40;new Locale &#40;"pt","BR"&#41;&#41;;
		LocaleManager.add&#40;new Locale &#40;"en","US"&#41;&#41;;
	}
	public void loadActions&#40;&#41;{
		ActionConfig ac = new ActionConfig &#40;"/Hello",Hello.class&#41;;
		ac.addConsequence&#40;Hello.SUCCESS,new Forward &#40;"/hello.jsp"&#41;&#41;;
		ac.addConsequence&#40;Hello.ERROR,new Forward &#40;"/username.jsp"&#41;&#41;;
		addActionConfig&#40;ac&#41;;
		ac.addFilter&#40;new VOFilter&#40;User.class,"user"&#41;&#41;;
	}

}

</pre>
		</div>

Um abraço!]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#65</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#65</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 11:35:09]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ No seu VOFilter vc colocou o key como user, mas está tentando pegar via o nome da classe: teste.menta.beans.User

Seu input deve estar retornando NULL.

Cheque isso...

Faça ao invés: getInput("user");

]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#66</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#66</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 11:37:23]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
			<item>
				<title>Re:Minha msg. de erro para o field não aparece.</title>
				<description><![CDATA[ Olá Sergio!

Realmente eu alterei os parametros do VOFilter e esqueci de pegar o bean correto! 

Agora funcionou!

Um abraço!]]></description>
				<guid isPermaLink="true">http://forum.mentaframework.org/posts/list/14.page#67</guid>
				<link>http://forum.mentaframework.org/posts/list/14.page#67</link>
				<pubDate><![CDATA[Mon, 25 Jul 2005 12:19:33]]> GMT</pubDate>
				<author><![CDATA[ Glaucio]]></author>
			</item>
	</channel>
</rss>
