jfinal-java8版本的数组参数绑定问题

使用的是jfinal-java8版本

<dependency>
   <groupId>com.jfinal</groupId>
   <artifactId>jfinal-java8</artifactId>
   <version>3.3</version>
</dependency>

在实验上传文件数组的时候出了点儿问题

public void upload2(
   UploadFile files[],
   Integer[] id){

   //UploadFile[] files = (UploadFile[]) getFiles().toArray();
   for (UploadFile file : files) {
       System.out.println("uploaded: " + file.getFile().getAbsolutePath());
   }
   renderText("uploaded: " + files.length);
}

前端用的是postman进行的测试

blob.png

异常如下:

blob.png


结果是:

    Integer[]类型的参数id可以绑定成功,

    UploadFile[]类型的参数files绑定会抛出异常;

        使用getFiles获取文件数组没有问题,就不必再说了


怎么解决,求教!!!

评论区

JFinal

2018-03-01 16:42

先去掉 UploadFile files[] 参数,看看别的普通参数是不是正常工作,这个可以确保你的配置是对的

如果上面一步可以了,将 UploadFile files[] 加回去再试

wumugulu

2018-03-01 17:23

绑定的Integer数组参数id能够正常获取到;
不使用参数绑定files,而是使用getFiles方法的话能正确获取files;

JFinal

2018-03-01 17:38

@wumugulu 试试 UploadFile files[] 改成 UploadFile files 看能不能支持

wumugulu

2018-03-02 10:10

试了,改成UploadFile files;跟预期的一样,没有报错,可是这样只取到了第一个文件;
最终目的是要接收到前端上传的文件数组哦,而且文件数量不定,波总,麻烦再看下哈~~~

JFinal

2018-03-02 11:43

@wumugulu UploadFile[] 数组貌似还不支持,建议用一下 getFiles() 来做,也挺方便的,此外呼出大神 @玛雅牛 看是否能在 jfinal 3.4 中添加这个功能,这个功能是 @玛雅牛 贡献的

wumugulu

2018-03-02 21:51

@JFinal 哦了, 暂时先这么解决吧,多谢~

玛雅牛

2018-03-04 11:47

UploadFile[] 目前是还没有支持,3.4版本可以加上这个。

wumugulu

2018-03-04 21:48

@玛雅牛 期待。。。

热门反馈

扫码入社