我在在使用struts2上传文件时出现Error setting expression ‘afileFileName’ with value [‘jsf.jpg’, ]
一开始百度查到的是,很多人在上传文件时忘记设置form表单的MIME编码,或者不小心写错了,就是下面这句(enctype=”multipart/form-data”)
“`
我的问题不是这个,仔细看了一遍,发现我在action中写接收文件名称的属性时,将xxxFileName写成了
xxxFilename(这里的xxx代表上传文件的file的name),就差了一个n的大小写。。。
本来是照着struts的API文档里写的,这个属性名称是复制的,就怕自己拼写错误,在一开始上传操作时,
无法获取到文件名,后来发现属性名称不对(这时候的n还是小写),然后我就改了,可是这个时候,set和get
方法还是根据以前的属性名称生成的,被我给忽略了,所以就出现了上面的错误
这是实现上传的API:
//And then in your action code you'll have access to the File object if you provide setters according to the naming convention documented in the start. package com.example;import java.io.File;import com.opensymphony.xwork2.ActionSupport;public UploadAction extends ActionSupport {private File file;private String contentType;private String filename;public void setUpload(File file) {this.file = file;}public void setUploadContentType(String contentType) {this.contentType = contentType;}public void setUploadFileName(String filename) {this.filename = filename;}public String execute() {//...return SUCCESS;}
}
struts2文档中的这个属性不是驼峰命名法。。。,不知道还有哪些地方有这种问题,所以在使用struts2
中的属性时,尽量不要直接去看属性的名称,而是去看它的set和get方法怎么写的
在这里记录一下我的这个错误