2016-11-17 4 views
0

Это мой код в JSP-файле в моей модели Spring-model-view-controller (MVC) Spring. Версия платформы Spring-model-view-controller (MVC) Spring 3.28, развернутая в версии WebLogic Server версии 12.1.2.0.0. Я использую JSTL-1,2JSTL fn: length() Функция с байтом []

<c:if test="${not empty form.attachment}"> 
${fn:length(form.attachment.bytes.length)} 
</c:if> 

Где

private MultipartFile attachment; 

Но у меня есть эта ошибка:

java.lang.NumberFormatException: For input string: "length" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
     at java.lang.Integer.parseInt(Integer.java:492) 
     at java.lang.Integer.parseInt(Integer.java:527) 
     at javax.el.ArrayELResolver.toInteger(ArrayELResolver.java:378) 
     at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:198) 
     at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188) 
     at com.sun.el.parser.AstValue.getValue(AstValue.java:138) 
     at com.sun.el.parser.AstValue.getValue(AstValue.java:183) 
     at com.sun.el.parser.AstFunction.getValue(AstFunction.java:122) 
     at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224) 
     at weblogic.servlet.jsp.ELHelper.evaluate(ELHelper.java:32) 
     at jsp_servlet._web_45_inf._jsp._manage.__managecompanybody._jsp__tag2(__managecompanybody.java:952) 
     at jsp_servlet._web_45_inf._jsp._manage.__managecompanybody._jspService(__managecompanybody.java:252) 
     at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) 
     at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:573) 
     at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480) 
     at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:162) 
     at jsp_servlet._web_45_inf._jsp._manage.__managebody._jspService(__managebody.java:1048) 
     at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) 
     at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:573) 
     at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:480) 
     at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:347) 
     at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:204) 
     at jsp_servlet._web_45_inf._jsp._template.__template._jsp__tag2(__template.java:365) 
     at jsp_servlet._web_45_inf._jsp._template.__template._jspService(__template.java:247) 
     at weblogic.servlet.jsp.JspBase.service(JspBase.java:34) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) 
     at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:573) 
     at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:272) 
     at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
     at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 
     at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) 
     at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) 
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) 
     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) 
     at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at cpm.tdk.iot.taglib.datagrid.export.ExcelExportFilter.doFilter(ExcelExportFilter.java:39) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at cpm.tdk.iot.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at cpm.tdk.iot.filter.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:38) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at cpm.tdk.iot.filter.RequestUrlFilter.doFilter(RequestUrlFilter.java:31) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at cpm.tdk.iot.support.context.DevicesSecurityFilter.doFilter(DevicesSecurityFilter.java:82) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) 
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367) 
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333) 
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
     at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 
     at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220) 
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146) 
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124) 
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564) 
     at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:254) 
+3

Попробуйте 'fn: length (form.attachment.bytes)' вместо 'fn: length (form.attachment.bytes.length)'. – GriffeyDog

+0

@GriffeyDog, пожалуйста, конвертировать в ответ –

ответ

1

Вам нужно изменить:

fn:length(form.attachment.bytes.length) 

To:

fn:length(form.attachment.bytes) 

Чтобы получить длину массива байтов, а не длину, вы хотите получить fn:length.