struts从2.3.15升级到2.5.30后,action接收的list数组被限制最大只接收256,调试过程中无报错,用postman调接口后,传参数组大小为259,但是传到后台后list数组的大小只有256

时间: 2024-03-19 22:43:31 浏览: 14
如果你已经尝试了上述方法仍然没有解决问题,那么可能是Struts的默认配置中有其他参数大小限制。你可以尝试在Struts的配置文件struts.xml中添加以下内容: ```xml <constant name="struts.mapper.multipart.maxSize" value="102400000" /> ``` 其中,value的值是最大文件大小,单位为字节。在这个例子中,最大文件大小被设置为100 MB。注意,这里使用的是`struts.mapper.multipart.maxSize`而不是`struts.multipart.maxSize`。 另外,你也需要在Tomcat的配置文件server.xml中添加以下内容: ```xml <Connector port="8080" maxPostSize="0" /> ``` 其中,maxPostSize的值为0表示不限制POST请求的大小。你可以根据实际情况设置这个值。 如果仍然无法解决问题,你可以考虑检查你的Web服务器或负载均衡器是否有类似的参数大小限制。同时,你还可以考虑使用其他的Web框架来替换Struts,例如Spring MVC或者Struts的后继框架Struts2。 希望这些信息能够帮助你解决问题。如果还有疑问,请随时追问。
相关问题

struts从2.3.15升级到2.5.30后,action接收的list数组被限制最大只接收256,调试过程中无报错,用postman调接口后,传参数组大小为259,但是传到后台后数组大小只有256

在Struts2中,接收参数时被限制为最大只接收256长度的原因是因为Struts2默认使用的是ArrayList类型的TypeConverter进行参数类型转换,而该TypeConverter默认的最大值为256。 要解决这个问题,可以自定义一个TypeConverter,并替换掉Struts2默认的ArrayList类型的TypeConverter。具体步骤如下: 1. 自定义一个TypeConverter,继承自StrutsTypeConverter类,并重写convertFromString方法,如下所示: ```java import java.util.ArrayList; import java.util.Map; import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter; public class MyArrayListConverter extends DefaultTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { if (values == null || values.length == 0) { return null; } ArrayList<Object> list = new ArrayList<Object>(); for (String value : values) { list.add(value); } return list; } } ``` 2. 在struts.xml文件中注册该TypeConverter,并指定需要转换的参数类型,如下所示: ```xml <bean type="org.apache.struts2.util.StrutsTypeConverter" name="myArrayListConverter" class="com.example.MyArrayListConverter"/> <constant name="struts.conversion.array.maxSize" value="1000" /> <constant name="struts.conversion.array.allowNonList" value="true" /> <constant name="struts.conversion.collection.maxSize" value="1000" /> <constant name="struts.conversion.map.maxSize" value="1000" /> <constant name="struts.conversion.object.maxSize" value="1000" /> <constant name="struts.conversion.properties.maxSize" value="1000" /> <constant name="struts.conversion.date" value="false" /> <constant name="struts.conversion.number" value="false" /> <constant name="struts.conversion.boolean" value="false" /> <constant name="struts.conversion.class" value="false" /> <constant name="struts.conversion.fileUpload" value="false" /> <constant name="struts.conversion.patternMatcher" value="false" /> <constant name="struts.conversion.locale" value="false" /> <constant name="struts.conversion.classloader" value="false" /> <constant name="struts.conversion.enum" value="false" /> <constant name="struts.conversion.i18n" value="false" /> <constant name="struts.conversion.numberLocale" value="false" /> <constant name="struts.conversion.dateLocale" value="false" /> <constant name="struts.conversion.string" value="false" /> <constant name="struts.conversion.classArray" value="false" /> <constant name="struts.conversion.dateArray" value="false" /> <constant name="struts.conversion.numberArray" value="false" /> <constant name="struts.conversion.booleanArray" value="false" /> <constant name="struts.conversion.enumArray" value="false" /> <constant name="struts.conversion.i18nArray" value="false" /> <constant name="struts.conversion.patternMatcherArray" value="false" /> <constant name="struts.conversion.fileUploadArray" value="false" /> <constant name="struts.conversion.propertiesArray" value="false" /> <constant name="struts.conversion.collectionArray" value="false" /> ``` 在上述代码中,我们使用了常量struts.conversion.array.maxSize来指定了最大值为1000,这个值可以根据具体情况进行修改。同时,我们也可以通过其他常量来指定其他类型的最大值。 3. 在action中将需要转换的参数指定为该TypeConverter,如下所示: ```java public class MyAction extends ActionSupport { private ArrayList<Object> list; public ArrayList<Object> getList() { return list; } public void setList(ArrayList<Object> list) { this.list = list; } @Override public String execute() throws Exception { // do something return SUCCESS; } @Override public void validate() { if (list != null && list.size() > 1000) { addFieldError("list", "列表长度不能超过1000"); } } @Override public void prepare() throws Exception { // 注册TypeConverter ConvertUtils.register(new MyArrayListConverter(), ArrayList.class); } } ``` 在上述代码中,我们将需要转换的参数list指定为自定义的TypeConverter,在prepare方法中注册TypeConverter。同时,在validate方法中可以对list的大小进行验证,以避免超过指定的大小。

struts2从2.3.15升级到2.5.30后,action接收的list数组被限制最大只接收256,调试过程中无报错,用postman调接口后,传参数组大小为259,但是传到后台后list数组的大小只有256

如果你已经尝试了上述方法仍然没有解决问题,那么可能是Struts的默认配置中有其他参数大小限制。你可以尝试在Struts的配置文件struts.xml中添加以下内容: ```xml <constant name="struts.mapper.multipart.maxSize" value="102400000" /> ``` 其中,value的值是最大文件大小,单位为字节。在这个例子中,最大文件大小被设置为100 MB。注意,这里使用的是`struts.mapper.multipart.maxSize`而不是`struts.multipart.maxSize`。 另外,你也需要在Tomcat的配置文件server.xml中添加以下内容: ```xml <Connector port="8080" maxPostSize="0" /> ``` 其中,maxPostSize的值为0表示不限制POST请求的大小。你可以根据实际情况设置这个值。 如果仍然无法解决问题,你可以考虑检查你的Web服务器或负载均衡器是否有类似的参数大小限制。同时,你还可以考虑使用其他的Web框架来替换Struts,例如Spring MVC或者Struts的后继框架Struts2。 希望这些信息能够帮助你解决问题。如果还有疑问,请随时追问。

相关推荐

最新推荐

recommend-type

Dashboard开发过程和规范

2.3.10. 使用预执行和后执行功能部件执行验证功能 19 2.3.11. 使用样本数据创建原型 19 2.3.12. 创建包含其它模型所需公共元素的公共模型 19 2.3.13. 如果仪表板将由多个客户使用,请创建管理portlet 20 2.3.14. ...
recommend-type

公共信息模型(CIM)基础 301

A.2.5 保护包Protection 76 A.2.5.1 电流继电器类CurrentRelay 76 A.2.5.2 保护设备类ProtectionEquipment 77 A.2.5.3 重合序列类RecloseSequence 78 A.2.5.4 同期检查继电器类SynchrocheckRelay 78 A.2.6 量测包...
recommend-type

W-CS 信令分析手册

2.2.5 VLR间普通位置更新成功流程(使用TMSI发起的位置更新,IMSI可以从PVLR获得) 2-18 2.2.6 VLR间普通位置更新失败流程 2-23 2.3 主要消息和信元(IE)分析 2-31 2.3.1 位置更新请求(Location Updating Request...
recommend-type

基于Springboot + Mybatis框架实现的一个简易的商场购物系统.zip

基于springboot的java毕业&课程设计
recommend-type

用于 CNO 实验的 MATLAB 脚本.zip

1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SQL怎么实现 数据透视表

SQL可以通过使用聚合函数和GROUP BY子句来实现数据透视表。 例如,假设有一个销售记录表,其中包含产品名称、销售日期、销售数量和销售额等信息。要创建一个按照产品名称、销售日期和销售额进行汇总的数据透视表,可以使用以下SQL语句: ``` SELECT ProductName, SaleDate, SUM(SaleQuantity) AS TotalQuantity, SUM(SaleAmount) AS TotalAmount FROM Sales GROUP BY ProductName, SaleDate; ``` 该语句将Sales表按照ProductName和SaleDat
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。