Tentei fazer da seguinte forma, mas não deu certo…
No meu formulario coloquei a parte para preencher o adicional e o botão incluir…
<fieldset>
<legend>Adicionais</legend>
<table cellpadding="0" cellspacing="2" border="0">
<tr>
<input type="hidden" id="cpfTitular" name="cliente.adicional.cpfTitular" value="${cliente.cpf}" />
<td align="right"><label class="req" for="cpfAdicinal">CPF<span class="req">*</span>:</label></td>
<td><input type="text" id="adicionalCpf" name="cliente.adicional.cpfAdicional" value="${cliente.adicional.cpfAdicinal}"/></td>
</tr>
<tr>
<td align="right"><label class="req" for="nome">Nome<span class="req">*</span>:</label></td>
<td><input type="text" id="adicionalNome" name="cliente.adicional.nome" value="${cliente.adicional.nome}"/></td>
<td align="right"><label class="req" for="nomeMeio">Nome do meio:</label></td>
<td><input type="text" id="adicionalNomeMeio" name="cliente.adicional.nomeMeio" value="${cliente.adicional.nomeMeio}"/></td>
<td align="right"><label class="req" for="sobrenome">Sobrenome<span class="req">*</span>:</label></td>
<td><input type="text"id="adicionalSobrenome" name="cliente.adicional.sobrenome" value="${cliente.adicional.sobrenome}"/></td>
</tr>
<tr>
<td align="right"><label class="req" for="dataNascimento">Data de Nascimento<span class="req">*</span>:</label></td>
<td><input type="text"id="adicionalDataNascimento" name="cliente.adicional.dataNascimento" value="${cliente.adicional.dataNascimento}" OnKeyPress="formatar(this, '##/##/####')" maxlength="10"/></td>
<td align="right"><label class="req" for="parentesco">Parentesco<span class="req">*</span>:</label></td>
<td><select id="adicionalParentesco" name="cliente.adicional.parentesco" >
<option value="">.. Selecione ..</option>
<c:forEach var="parentesco" items="${parentescos}">
<option value="${parentesco.codigo}">${parentesco.descricao}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td align="right" colspan="4">
<input type="button" value="Incluir Adicional" onclick="incluirAdicional();"/>
</td>
</tr>
</table>
</fieldset>
A função do javascript ficou assim:
function incluirAdicional(){
var meuArray = new Array(7);
meuArray[0] = $('#cpfTitular').val();
meuArray[1] = $('#adicionalCpf').val();
meuArray[2] = $('#adicionalNome').val();
meuArray[3] = $('#adicionalNomeMeio').val();
meuArray[4] = $('#adicionalSobrenome').val();
meuArray[5] = $('#adicionalDataNascimento').val();
meuArray[6] = $('#adicionalParentesco').val();
$.getJSON('<c:url value="/cliente/incluirAdicional/"/>' + meuArray, function (json) {
});
}
na classe ClienteController coloquei o método incluirAdicional
@Get("/cliente/incluirAdicional/{meuArray}")
public void incluirAdicional(ArrayList<?> meuArray){
System.out.println("To aqui!!!!");
}
Mas deu erro de casting:
java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.WildcardTypeImpl cannot be cast to java.lang.Class
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.getActualType(OgnlParametersProvider.java:200)
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createList(OgnlParametersProvider.java:183)
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createSimpleParameter(OgnlParametersProvider.java:172)
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createRoot(OgnlParametersProvider.java:144)
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.createParameter(OgnlParametersProvider.java:122)
at br.com.caelum.vraptor.http.ognl.OgnlParametersProvider.getParametersFor(OgnlParametersProvider.java:85)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.getParametersFor(ParametersInstantiatorInterceptor.java:105)
at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.disoft.interceptor.LoginInterceptor.intercept(LoginInterceptor.java:31)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.disoft.interceptor.PermissionInteceptor.intercept(PermissionInteceptor.java:38)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Vou tentar arrumar o erro de casting, mas não sei se estou com a abordagem certa para esse caso…
Se alguem tiver uma dica agradeço…
Valeu…