SpringMVC提交數組時不能超過256個值(轉)

來源:互聯網
上載者:User

標籤:framework   代碼   地址   size   lease   sso   決定   特殊字元   contex   

項目遇到了這個錯誤,spring mvc 竟然還有這個漏洞.

org.springframework.beans.InvalidPropertyException: Invalid property ‘detail[256]‘ of bean class [com.suning.asvp.mer.entity.InviteCooperationInfo]: Index of out of bounds in property path ‘detail[256]‘; nested exception is java.lang.IndexOutOfBoundsException: Index: 256, Size: 256      at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:833) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:576) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:553) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:914) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76) ~[spring-beans-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.validation.DataBinder.applyPropertyValues(DataBinder.java:692) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.validation.DataBinder.doBind(DataBinder.java:588) ~[spring-context-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.web.bind.WebDataBinder.doBind(WebDataBinder.java:191) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]      at org.springframework.web.bind.ServletRequestDataBinder.bind(ServletRequestDataBinder.java:112) ~[spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE]  

解決方案,在Action裡重寫SpringMVC限制的數組的方法:

@InitBinder  public void initBinder(WebDataBinder binder) {      // 設定List的最大長度      binder.setAutoGrowCollectionLimit(10000);  }  
這段代碼我發現在項目在解決架構缺陷的時候已經在baseAction裡重寫了這個方法,在其他Action裡是繼承了baseAction,在開發環境裡測試時沒有問題的,但在測試環境裡就不生效了,最後想到了兩個解決方案,  1.直接在自己的Action在去重寫上面的方法   2.在前台把數群組轉換成Json串,傳到後台把Json串轉換成集合方案一:其實上面的那段代碼寫在baseAction裡就是為了在其他的Action裡不用重寫了,但是在測試環境不生效,很鬱悶,只有先這樣子了方案二: JSON.stringifier(myObject); 但傳到後台是報錯,應為存在特殊字元方案三:開發環境可以,測試環境不可以,會不會是其他問題,於是又讓部署人員清除下部署套件緩衝,但是還是沒用,可能就是兩個環境存在差異吧最後還是用方案一解決的,因為時間比較緊,項目快上線了,而且如果改成json串,改動點比較多,最後還是決定用方案一以前都不知道這個問題,工作也是一個學習的過程

原文地址:50839218

 

SpringMVC提交數組時不能超過256個值(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.