ActionMessages dando pau

Bom estou fazendo a verificação de erro do meu cadastro utilizando ActionMessages, mais tem uma problema quando eu adiciono uma messages com o messages.add(“nome”, new ActionMessage(“projetoFinal.struts.erro.nome”)) ela não adiciona, ou melhor dizendo sobrescreve a mensagem anterior que seria a do ID, messages.add(“id”, new ActionMessage(“projetoFinal.struts.erro.id”)), já mexi em tudo aqui mais não resolveu alguém poderia dar uma luz ???

Segue o codigo abaixo:

metodo prepareCreate que seta a operação a ser executa no Action, atraves de um campo hidden no form

public ActionForward prepareCreate(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		// especializa o objeto
		ProjectForm projectForm = (ProjectForm) form;

		// seta a operação
		projectForm.setOperation("create");

		return (mapping.findForward("prepareCreate"));

	}

metodo create que verifica se existe mensagens


	public ActionForward create(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws SQLException, ParseException {

		// objeto dao
		ProjectDAO projectDAO = new ProjectDAO();

		// objeto que recebe os dados vindo do actionForm
		ProjectTO projectTO = new ProjectTO();

		// especializa o objeto
		ProjectForm projectForm = (ProjectForm) form;

		// cria um objeto de menssagem
		ActionMessages messages = new ActionMessages();

		// chama o metodo que verifica os dados inseridos no form
		parseTO(projectTO, projectForm, messages);

		// verifica se o messages está vazio
		if (messages.size() > 0) {
			// se entrar aqui significa que alguma mensagem está gravado nele
			// então logo algum erro aconteceu
			saveMessages(request, messages);

			return (mapping.findForward("prepareCreate"));
		} else {
			// caso contrario o registro está pronto para ser gravado
			projectDAO.create(projectTO);

			// atualiza a lista e a exibe
			return (mapping.findForward("refreshFindAll"));
		}

metodo parseTO que verifica se existe erros no form, caso exista ele retorna no jsp com a mensagens e exibe mais ai que está acontecendo o problema, ele sobrescreve as mensagem por exemplo só exibe o erro do id em todos os campos ou o nome em todos os campos. O atributo count do messages sempre fica em 1 no debug, alguém saberia me dizer o que está acontecendo ??

 	/**
	 * Metodo que checa se os dados vindo de um form são validos caso sejam, ele
	 * vai sendo armazenado em um projetoTO para depois ser gravado
	 */
	public void parseTO(ProjectTO projectTO, ProjectForm form,
			ActionMessages messages) {

		// checa se o id é valido
		if (form.getId() != null && form.getId() != "") {
			// tenta converter o numero do form para um integer
			// se conseguir o id é valido caso contrario o id pode ser uma
			// letra ou alguma caracter invalido
			try {
				projectTO.setId(Integer.parseInt(form.getId()));
			} catch (NumberFormatException e) {
				// adciona a mensagem de erro
				messages.add("id", new ActionMessage(
						"projetoFinal.gavazzi.erro.numero"));
			}
		} else {
			// se entrar nesse else, o id está nulo ou em branco
			messages.add("id",
					new ActionMessage("projetoFinal.gavazzi.erro.id"));
		}

		// checa se o nome é valido
		if (form.getNome() == null || form.getNome() == "") {
			messages.add("nome", new ActionMessage(
					"projetoFinal.gavazzi.erro.nome"));
		} else {
			// atribui o nome ao pjTO para ser gravado posteriormente
			projectTO.setNome(form.getNome());
		}

	}

JSP do cadastro


<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Titulo</title>
</head>
<body>
	<table>
		<html:form action="/ProjectAction">
			<tr>
				<td>
					<bean:message key="cadup.id"/>
				</td>
				
				<td>
					
					<html:hidden property="operation"/>
					<html:text property="id"></html:text>
				</td>
				
				<td>
					<logic:messagesPresent message="true" name="request" property="id">
						<html:messages id="message" message="true"></html:messages>
						<bean:write name="message"/>
					</logic:messagesPresent>
				</td>
				
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.nome"/>
				</td>
				
				<td>
					<html:text property="nome"></html:text>
				</td>
				
				<td>
					<logic:messagesPresent message="true" name="request" property="nome">
						<html:messages id="message" message="true"></html:messages>
						<bean:write name="message"/>
					</logic:messagesPresent>
				</td>
				
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.descricao"/>
				</td>
				
				<td>
					<html:textarea property="descricao"  cols="15" rows="3"></html:textarea>
				</td>
			
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.status"/>
				</td>
				
				<td>
					<html:text property="status" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.prevInicio"/>
				</td>
				
				<td>
					<html:text property="prevInicio" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.prevTermino"/>
				</td>
				
				<td>
					<html:text property="prevTermino" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.inicio"/>
				</td>
				
				<td>
					<html:text property="inicio" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.termino"/>
				</td>
				
				<td>
					<html:text property="termino" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.prevHoras"/>
				</td>
				
				<td>
					<html:text property="prevHoras"></html:text>
				</td>
			</tr>
			
			<tr>
				<td>
					<bean:message key="cadup.horasEfetivas"/>
				</td>
				
				<td>
					<html:text property="horasEfetivas" ></html:text>
				</td>
			</tr>
			
			<tr>
				<td colspan="2">
					<html:submit><bean:message key="btn.enviar"/></html:submit>
					<html:reset><bean:message key="btn.limpar"/> </html:reset>
				</td>
			</tr>
		</html:form>
	</table>
</body>
</html>

Se alguém puder me ajudar obrigado.