Vraptor 3 / upload select multiple

basta nomeá-lo:

fornecedor.grupos[].id

Funcionou, parabéns pela implementação, possibilita um código mais elegante :wink:

Só pra constar pra galera que tiver o mesmo problema no futuro.

Eu tinha uma classe fornecedor que por sua vez possuia uma coleção de grupos.
E precisava que o vraptor preenchesse automaticamente os valores dos grupos em um multiple selectbox.

public class Fornecedor extends Domain implements Serializable {
... 
    @JoinTable(name = "grupos_fornecedores", joinColumns = {@JoinColumn(name = "fornecedor_id", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "grupo_id", referencedColumnName = "id")})
    @ManyToMany(fetch = FetchType.LAZY)
    private List<Grupo> grupos;
...

Na última snapshot que peguei do vraptor 3 a 3.1.2xxxxx

A view ficou assim:

...
	                        <select name="fornecedor.grupos[].id" id="gruposId" size="6" style="width: 450px;" multiple="multiple">
	                            <c:forEach var="grupo" items="${grupos}">
	                                <c:set var="selected" value="" />
	                                <c:forEach var="group" items="${fornecedor.grupos}">
	                                    <c:if test="${grupo.id == group.id}">
	                                        <c:set var="selected" value="selected='selected'"/>
	                                    </c:if>
	                                </c:forEach>
	                                <option value="${grupo.id}" ${selected}>${grupo.nome}</option>
	                            </c:forEach>
	                        </select>
...

e na assinatura do método eu só precisei passar o fornecedor como parâmetro. Não preciso mais passar um array de Strings

...
	public void save(Fornecedor fornecedor) {
...

Alguém conseguiu?

minha tentativa ta assim:

no intercept…

Enumeration<String> params = request.getParameterNames();

		while (params.hasMoreElements()) {
			String param = params.nextElement();
			if (param.contains("[]")) {
				String[] values = request.getParameterValues(param);

				for (int j = 0; j < values.length; j++) {
					request.setAttribute(param.replace("[]", "[" + j + "]"),
							values[j]);
				}
			}
		}

requestexecution

public CustomRequestExecution(InterceptorStack interceptorStack, InstantiateInterceptor instantiator) { super(interceptorStack, instantiator); interceptorStack.add(FixParamsInterceptor.class); }

e no jsp…:

<input type="checkbox" name="combo[].id" value="1" /> <input type="checkbox" name="combo[].id" value="2" />

na controller…

public void editaPerfil(Usuario usuario, List<Perfil> combo){...

Esta chegando null a lista, porém se eu troco o combo[] por combo[0] e combo[1] chega o valor… tenho que alterar mais alguma coisa pra funcionar o combo[]?

baixe o último snapshot do vraptor, isso (a notação combo[]) já está funcionando:

http://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.1.3-SNAPSHOT/vraptor-3.1.3-20100519.161626-7.jar

[quote=Lucas Cavalcanti]baixe o último snapshot do vraptor, isso (a notação combo[]) já está funcionando:

http://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.1.3-SNAPSHOT/vraptor-3.1.3-20100519.161626-7.jar[/quote]

preciso por algum jar a mais?

nao ta achando NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer

tenho o paranamer-1.5.jar dentro do web/lib

Resolvido atulizei o paranamer para 2.2 e foi. http://repository.codehaus.org/com/thoughtworks/paranamer/paranamer/2.2/paranamer-2.2.jar

Me deparei com o seguinte erro ao usar select multiple Vraptor 3 (3.1.3).

09:17:07,125 DEBUG [VRaptorRequest      ] Setting noticia.editorias[0].id with [1]
09:17:07,125 DEBUG [VRaptorRequest      ] Setting noticia.editorias[1].id with [3]
09:17:07,125 DEBUG [VRaptorRequest      ] Setting noticia.editorias[2].id with [5]
09:17:07,125 DEBUG [OgnlParametersProvider] Applying noticia.editorias[].id with [1, 3, 5]
09:17:07,125 DEBUG [OgnlParametersProvider] unable to parse expression 'noticia.editorias[].id'
ognl.ExpressionSyntaxException: Malformed OGNL expression: noticia.editorias[].id [ognl.ParseException: Encountered " "]" "] "" at line 1, column 19.
Was expecting one of:
    ":" ...
    "not" ...
    "+" ...
    "-" ...
    "~" ...
    "!" ...
    "(" ...
    "true" ...
    "false" ...
    "null" ...
    "#this" ...
    "#root" ...
    "#" ...
    "[" ...
    "{" ...
    "@" ...
    "new" ...
    <IDENT> ...
    <DYNAMIC_SUBSCRIPT> ...
    "\'" ...
    "`" ...
    "\"" ...
    <INT_LITERAL> ...
    <FLT_LITERAL> ...
    ]
	at ognl.Ognl.parseExpression(Ognl.java:112)
	at ognl.Ognl.setValue(Ognl.java:783)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createViaOgnl(OgnlParametersProvider.java:132)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createRoot(OgnlParametersProvider.java:108)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.getParametersFor(OgnlParametersProvider.java:90)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.getParametersFor(ParametersInstantiatorInterceptor.java:104)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.access.controll.impl.AccessInterceptor.intercept(AccessInterceptor.java:110)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.acesso.AcessoInterceptor.intercept(AcessoInterceptor.java:39)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:45)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.vraptor.util.FirstInterceptor.intercept(FirstInterceptor.java:64)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
Caused by: ognl.ParseException: Encountered " "]" "] "" at line 1, column 19.
Was expecting one of:
    ":" ...
    "not" ...
    "+" ...
    "-" ...
    "~" ...
    "!" ...
    "(" ...
    "true" ...
    "false" ...
    "null" ...
    "#this" ...
    "#root" ...
    "#" ...
    "[" ...
    "{" ...
    "@" ...
    "new" ...
    <IDENT> ...
    <DYNAMIC_SUBSCRIPT> ...
    "\'" ...
    "`" ...
    "\"" ...
    <INT_LITERAL> ...
    <FLT_LITERAL> ...
    
	at ognl.OgnlParser.generateParseException(OgnlParser.java:3172)
	at ognl.OgnlParser.jj_consume_token(OgnlParser.java:3051)
	at ognl.OgnlParser.unaryExpression(OgnlParser.java:1236)
	at ognl.OgnlParser.multiplicativeExpression(OgnlParser.java:971)
	at ognl.OgnlParser.additiveExpression(OgnlParser.java:894)
	at ognl.OgnlParser.shiftExpression(OgnlParser.java:750)
	at ognl.OgnlParser.relationalExpression(OgnlParser.java:508)
	at ognl.OgnlParser.equalityExpression(OgnlParser.java:405)
	at ognl.OgnlParser.andExpression(OgnlParser.java:352)
	at ognl.OgnlParser.exclusiveOrExpression(OgnlParser.java:299)
	at ognl.OgnlParser.inclusiveOrExpression(OgnlParser.java:246)
	at ognl.OgnlParser.logicalAndExpression(OgnlParser.java:193)
	at ognl.OgnlParser.logicalOrExpression(OgnlParser.java:140)
	at ognl.OgnlParser.conditionalTestExpression(OgnlParser.java:101)
	at ognl.OgnlParser.assignmentExpression(OgnlParser.java:64)
	at ognl.OgnlParser.expression(OgnlParser.java:23)
	at ognl.OgnlParser.index(OgnlParser.java:2336)
	at ognl.OgnlParser.navigationChain(OgnlParser.java:1331)
	at ognl.OgnlParser.unaryExpression(OgnlParser.java:1196)
	at ognl.OgnlParser.multiplicativeExpression(OgnlParser.java:971)
	at ognl.OgnlParser.additiveExpression(OgnlParser.java:894)
	at ognl.OgnlParser.shiftExpression(OgnlParser.java:750)
	at ognl.OgnlParser.relationalExpression(OgnlParser.java:508)
	at ognl.OgnlParser.equalityExpression(OgnlParser.java:405)
	at ognl.OgnlParser.andExpression(OgnlParser.java:352)
	at ognl.OgnlParser.exclusiveOrExpression(OgnlParser.java:299)
	at ognl.OgnlParser.inclusiveOrExpression(OgnlParser.java:246)
	at ognl.OgnlParser.logicalAndExpression(OgnlParser.java:193)
	at ognl.OgnlParser.logicalOrExpression(OgnlParser.java:140)
	at ognl.OgnlParser.conditionalTestExpression(OgnlParser.java:101)
	at ognl.OgnlParser.assignmentExpression(OgnlParser.java:64)
	at ognl.OgnlParser.expression(OgnlParser.java:23)
	at ognl.OgnlParser.topLevelExpression(OgnlParser.java:15)
	at ognl.Ognl.parseExpression(Ognl.java:110)
	... 50 more
/-- Encapsulated exception ------------\
ognl.ParseException: Encountered " "]" "] "" at line 1, column 19.
Was expecting one of:
    ":" ...
    "not" ...
    "+" ...
    "-" ...
    "~" ...
    "!" ...
    "(" ...
    "true" ...
    "false" ...
    "null" ...
    "#this" ...
    "#root" ...
    "#" ...
    "[" ...
    "{" ...
    "@" ...
    "new" ...
    <IDENT> ...
    <DYNAMIC_SUBSCRIPT> ...
    "\'" ...
    "`" ...
    "\"" ...
    <INT_LITERAL> ...
    <FLT_LITERAL> ...
    
	at ognl.OgnlParser.generateParseException(OgnlParser.java:3172)
	at ognl.OgnlParser.jj_consume_token(OgnlParser.java:3051)
	at ognl.OgnlParser.unaryExpression(OgnlParser.java:1236)
	at ognl.OgnlParser.multiplicativeExpression(OgnlParser.java:971)
	at ognl.OgnlParser.additiveExpression(OgnlParser.java:894)
	at ognl.OgnlParser.shiftExpression(OgnlParser.java:750)
	at ognl.OgnlParser.relationalExpression(OgnlParser.java:508)
	at ognl.OgnlParser.equalityExpression(OgnlParser.java:405)
	at ognl.OgnlParser.andExpression(OgnlParser.java:352)
	at ognl.OgnlParser.exclusiveOrExpression(OgnlParser.java:299)
	at ognl.OgnlParser.inclusiveOrExpression(OgnlParser.java:246)
	at ognl.OgnlParser.logicalAndExpression(OgnlParser.java:193)
	at ognl.OgnlParser.logicalOrExpression(OgnlParser.java:140)
	at ognl.OgnlParser.conditionalTestExpression(OgnlParser.java:101)
	at ognl.OgnlParser.assignmentExpression(OgnlParser.java:64)
	at ognl.OgnlParser.expression(OgnlParser.java:23)
	at ognl.OgnlParser.index(OgnlParser.java:2336)
	at ognl.OgnlParser.navigationChain(OgnlParser.java:1331)
	at ognl.OgnlParser.unaryExpression(OgnlParser.java:1196)
	at ognl.OgnlParser.multiplicativeExpression(OgnlParser.java:971)
	at ognl.OgnlParser.additiveExpression(OgnlParser.java:894)
	at ognl.OgnlParser.shiftExpression(OgnlParser.java:750)
	at ognl.OgnlParser.relationalExpression(OgnlParser.java:508)
	at ognl.OgnlParser.equalityExpression(OgnlParser.java:405)
	at ognl.OgnlParser.andExpression(OgnlParser.java:352)
	at ognl.OgnlParser.exclusiveOrExpression(OgnlParser.java:299)
	at ognl.OgnlParser.inclusiveOrExpression(OgnlParser.java:246)
	at ognl.OgnlParser.logicalAndExpression(OgnlParser.java:193)
	at ognl.OgnlParser.logicalOrExpression(OgnlParser.java:140)
	at ognl.OgnlParser.conditionalTestExpression(OgnlParser.java:101)
	at ognl.OgnlParser.assignmentExpression(OgnlParser.java:64)
	at ognl.OgnlParser.expression(OgnlParser.java:23)
	at ognl.OgnlParser.topLevelExpression(OgnlParser.java:15)
	at ognl.Ognl.parseExpression(Ognl.java:110)
	at ognl.Ognl.setValue(Ognl.java:783)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createViaOgnl(OgnlParametersProvider.java:132)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createRoot(OgnlParametersProvider.java:108)
	at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.getParametersFor(OgnlParametersProvider.java:90)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.getParametersFor(ParametersInstantiatorInterceptor.java:104)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.access.controll.impl.AccessInterceptor.intercept(AccessInterceptor.java:110)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.acesso.AcessoInterceptor.intercept(AcessoInterceptor.java:39)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:45)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.simtecnologia.vraptor.util.FirstInterceptor.intercept(FirstInterceptor.java:64)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
\--------------------------------------/

Minha visao esta assim:

<select name="noticia.editorias[].id" multiple="multiple">

OGNL 2.7.3 e Paranamer 2.2.

No meu controler eu recebo da view assim:

public void persistir(Noticia noticia);

Onde noticia.editoria eh uma lista de Editoria editoria.id e um Integer.

Alguma sugestao ?

Se você tem um noticia.editorias[].id, espera-se que seja um array/list. Portanto seu método deve receber List ou Noticia[], e não simplesmente Noticia.

se existe um Noticia.setEditoriais(List) tb funciona, garcia…

esse erro chega a dar 500 ou só aparece no log?

Na verdade eh um List dentro do Noticia (noticia.editorias[].id)

Humm… me apressei ao informar isto como erro, fiquei sabendo de Lucas (thnks Tomaz Lavieri) que é só um log-> rethrow.

O problema que estava ocorrendo era em outro lugar (ja resolvi).

na verdade é um silenciator mesmo (log de debug -> ignore)

como em produção vc não deveria deixar log de debug ligado, acho que não tem maiores problemas deixar assim

sim, saquei :stuck_out_tongue: thnx…

a titulo de informacao o problema era que o bean tinha uma propriedade “editorias” que eh um Set, e eu achei q sobrescrevendo o metodo setEditorias(List ) e convertendo a lista para um set dentro dele resolveria, mas o OGNL na verdade usa o getter do editorias para enfiar o select multiple que foi passado da view no bean (noticia.getEditorias().set(X,bla)).

como o getter de editorias voltavam um Set, dava pAu

thnxz

edit: (emoticons oh the hell)

Oops :oops:

Pessoal bom dia como eu faço pra percorrer uma lista de arquivos que vem do input, e exibir cada arquivo em uma linha?
A principio fiz da seguinte forma

<form action="<c:url value="???"/>" enctype="multipart/form-data" method="post">
					<input type="file" name="arquivos[]" multiple="multiple"/>
					<input type="submit"/>
					
					<c:forEach var="file" items="${ }">
						<c:out value="${file}"></c:out>					
					</c:forEach>
				</form><br/>

vlw

vc quer exibir o que de cada arquivo? o nome? link pra download?

tenho um input file que vou faz\er o dowload multiplo, ai vi que ele separa cada url de arquivo por virgula , então eu precisaria percorrer e exibir o nome ou a url de cada arquivo apos a virgula tem que usar o split?

quero exibir o caminho dos arquivos

Assim eu vou precisar selecionar os arquivos pra upload, e exibir um em cada linha

Vc chegou a ver aquele outro topico? era so a versão do commons fileupload!! :shock:

vi sim…

vc quer exibir o caminho dos arquivos na máquina do cara?

faça isso com algum plugin javascript, tipo o jquery uploadfy.

não dá pra fazer isso do lado do servidor (JSP), o caminho do arquivo não vai pra lá, só o nome dele vai (questão de segurança). Ou seja, só dá pra fazer isso via javascript, do lado do cliente.

Entendi… então como eu faço somente pra exibir o nome do arquivo na minha tela ,? porque o upload de um arquivo beleza eu consegui, do mesmo jeito que eu fiz aquele projeto da apostila, a diferença e´que preciso selecionar mais de um para fazer upload de uma vez so!

sem problemas, só receber uma (List arquivos) no controller e usar o .getName() deles.