Struts 2 validation: customizar mensagens de erro do formulário

6 respostas
diogo.gonzaga

Pessoal,

Estou tentando customizar as mensagens de erro de preenchimento de formulários do struts-validation. O padrão é que essas mensagens apareçam sobre o campo que foi preenchido incorretamente. Como faço para obter a mensagem de erro e exibir da forma que eu desejar?

Obrigado.

6 Respostas

viniciuspadua

Com o código abaixo somente o que casar com o parâmetro ira ser mostrado!

<s:fielderror>
     <s:param>parametro</s:param>
</s:fielderror>
diogo.gonzaga

Ok, muito obrigado. Contudo, eu quero saber como faço para não aparecer o “message” sobre o campo.

viniciuspadua

como assim? como esta ficando o html ?
posta ai como colocou o JSP e como foi gerado o HTML final !

diogo.gonzaga

Aqui é o código jsp

<table>
		<tr>
			<td><s:textfield label="username" name="user.username"></s:textfield></td>
		</tr>
		<tr>
			<td><s:textfield label="password" name="user.password"></s:textfield></td>
		</tr>
		<tr>
			<td><s:submit></s:submit></td>
		</tr>
		<s:if test="hasErrors()">
			<tr>
				<td colspan="2">foram encontrados os seguintes erros <s:fielderror>
					<s:param>user.username</s:param>
				</s:fielderror></td>
			</tr>
		</s:if>

	</table>

E aqui é o resultado HTML:

<table>
		<tr>
			<td><tr errorFor="ChamaEJB_user_username">
    <td align="center" valign="top" colspan="2"><span class="errorMessage">User:  campo usuário requerido</span></td>
</tr>
<tr>

    <td class="tdLabel"><label for="ChamaEJB_user_username" class="errorLabel">Username:</label></td>
    <td
><input type="text" name="user.username" value="a" id="ChamaEJB_user_username"/></td>
</tr>
</td>
		</tr>
		<tr>
			<td><tr errorFor="ChamaEJB_user_password">
    <td align="center" valign="top" colspan="2"><span class="errorMessage">User:  senha requerida</span></td>
</tr>

<tr>
    <td class="tdLabel"><label for="ChamaEJB_user_password" class="errorLabel">Password:</label></td>
    <td
><input type="text" name="user.password" value="" id="ChamaEJB_user_password"/></td>
</tr>
</td>
		</tr>
		<tr>
			<td><tr>
    <td colspan="2"><div align="right"><input type="submit" id="ChamaEJB_0" value="Submit"/>
</div></td>

</tr>
</td>
		</tr>
		
			<tr>
				<td colspan="2">foram encontrados os seguintes erros 
					
								<ul>
				<li><span class="errorMessage">User:  usuário requerido</span></li>
		</ul>
</td>
			</tr>

		

	</table>
viniciuspadua

você queria que o erro aparecer assim:

<span class="errorMessage">senha requerida</span>

eo invés de

<span class="errorMessage">User:  senha requerida</span>

isso ?

diogo.gonzaga

Também! Além do mais eu queria que o erro só aparecesse uma vez. Ele está aparecendo sobre os campos e ainda quando eu chamo o <s:errorField>.

Criado 29 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 6
Participantes 2