[ww2]Inputs com mesmo nome

Olá, bom dia.

Usando o webwork2, notei que o comportamento dele ao enviar um formulario com inputs com ‘names’ idênticos, ele gera um string separando os valores por vírgulas.

Ok, eu dou um String.split no negócio e tudo bem.

Mas, não há outra maneira? Tentei tornar o objeto que recebe estes valores numa collection, e ir adicionando os valores no método setObjeto, mas o webwork não parece aceitar.

Há alguma sintaxe diferente necessária para não ter que trabalhar com a string?

Valeu povo.

Opa Lipe,

foi mal nao responder antes a PM …mas cá estou eu.

Entonces, esse negócio de colocar os campos separados por vírgula não é do Webwork mas da definição do html.

Eu jurava que se seu método recebesse um List ou Array o WW iria se virar.
Dê uma olhada no fonte pra ver se algum converter dele já faz isso, se fizer e não estiver fazendo :shock: é porque ele não foi registrado por padrão. Ai é só registrar no xwork-converters.xml

Se não existir escreva um e registre o danado.

[]s

Saquei, vou estudar um bocadinho sobre isso. Valeu cara!

ps: relax sobre a pm, eu nem tinha conseguido ser muito claro hehe :smiley:

ah ja achei :smiley:

http://wiki.opensymphony.com/display/XW/Type+Conversion

lindo isso … p.p

Poxa, não estou conseguindo configurar o converter, ele simplesmente não é chamado.

Olha o problema: na minha action tenho um getCandidato, e este tem um getDados, que por sua vez é uma classe que tem uma variavel Documentos

Então, no meu XXXAction-conversion.properties, eu coloquei
candidato.dados.documentos = classe.do.meu.converter

mas não rola. Já tentei colocar estes parametros de outro jeito, mas a classe não é chamada nem ferrando.

Alguma sugestão?

Na verdade não é a sequencia de propriedades que você coloca no arquivo xml, é a classe … ou seja, toda vez que ele encontrar uma propriedade daquela classe naquela action ele chama aquele conversor, entendeu?

Entao coloca a classe Documentos (FQN).

hum, entendi, mas no tutorial( http://wiki.opensymphony.com/display/XW/Type+Conversion ), ele falou de duas maneiras diferentes:

  • um arquivo global, onde eu coloco classe = classe do converter
    ou
  • um arquivo específico de uma classe, onde eu coloco só o nome de uma propriedade

se eu faço da primeira maneira, o converter é chamado, mas o método de convrsão não

se eu faço da segunda maneira, o converter nem é chamado :expressionless:

olha a classe do converter, tão simplezinha …

	public Object convertValue( Map ognlContext, Object value, Class toType )
	{
		System.out.println( "convertValue chamado" );//+ "
value: " +  value + "
toType: " + toType );
		if( toType == ArrayList.class )
		{
			String v = ( String ) value;
			String[] s = v.split( ", " );
			
			ArrayList l = new ArrayList();
			for( int i = 0; i < s.length; i++ )
				l.add( s[ i ] );
			
			return l;
		}
		else if( toType == String.class )
		{
			ArrayList v = ( ArrayList ) value;
			String s = v.toString();
			
			return s;
		}
		
		return null;
	}

recebe uma string com valores separados por vírgula e retorna um array list :expressionless:

valeu pelo reply smota :smiley: