I tracked down the problem to the s:url tag. It seems that it doesn't support nested properties. If I cahnge the jsp code to use a form and a submit button, the bindung and encryption is working like expected. Is this is bug?
On Thu, Apr 23, 2009 at 10:14 AM, Richard Hauswald <[email protected]> wrote: > Hello, > I'm stuck in my head, here's my tiny little problem: I want to submit > a list of Long values to an action bean. These values are database > ids, so i want them encrypted. The following solution is giving me > NullPointer exceptions in the TypeConverter. The generated Link is not > looking like I'd expect it to look: > /app/administration/ConsultantRoles.htm?consultantId=sN4P-XQFPKw%3D&assignedRoleIds%5B0%5D=1 > > This is the sourceCode: > > ConsultantRolesActionBean: > private List<Long> selectedIds; > > public ConsultantRolesActionBean() { > assignedRoleIds = new ArrayList<Long>(); > } > > @ValidateNestedProperties( > { @Validate(on = "view", encrypted = true) }) > public void setAssignedRoleIds(List<Long> assignedRoleIds) { > this.assignedRoleIds = assignedRoleIds; > } > > jsp: > <s:url var="assignRolesUrl" > beanclass="xyz.controller.app.administration.ConsultantRolesActionBean"> > <s:param name="consultantId" value="${consultant.id}"/> > <c:forEach var="role" items="${consultant.assignedRoles}" > varStatus="rolesStatus"> > <s:param name="assignedRoleIds[${rolesStatus.index}]" > value="${role.id}"/> > </c:forEach> > </s:url> > > Also tryed to change the validation annotation to: > @Validate(on = "view", encrypted = true) > public void setAssignedRoleIds(List<Long> assignedRoleIds) { > this.assignedRoleIds = assignedRoleIds; > } > > This results in the following url: > /app/administration/ConsultantRoles.htm?consultantId=QecNk2hZxBY%3D&assignedRoleIds%5B0%5D=1 > > and the same exception. To be complete here's the logMessage: > [ WARN] 10:12:47 > net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder:90 > - Looks like type converter > net.sourceforge.stripes.validation.longtypeconver...@103fbbe threw an > exception. > java.lang.NullPointerException > at > net.sourceforge.stripes.validation.NumberTypeConverterSupport.preprocess(NumberTypeConverterSupport.java:94) > at > net.sourceforge.stripes.validation.NumberTypeConverterSupport.parse(NumberTypeConverterSupport.java:68) > at > net.sourceforge.stripes.validation.LongTypeConverter.convert(LongTypeConverter.java:36) > at > net.sourceforge.stripes.validation.LongTypeConverter.convert(LongTypeConverter.java:25) > at > net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.convert(DefaultActionBeanPropertyBinder.java:792) > at > net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.bind(DefaultActionBeanPropertyBinder.java:182) > at > net.sourceforge.stripes.controller.DispatcherHelper$3.intercept(DispatcherHelper.java:194) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158) > at > net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155) > at > net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74) > at > net.sourceforge.stripes.controller.DispatcherHelper.doBindingAndValidation(DispatcherHelper.java:190) > at > net.sourceforge.stripes.controller.DispatcherServlet.doBindingAndValidation(DispatcherServlet.java:254) > at > net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:148) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67) > at > com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:115) > at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110) > 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.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:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:595) > > Any hints how to bind a list of Longs? > Thanks, > Richard > ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Stripes-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/stripes-users
