处理UploadedFile Tapestry5时出现NullException

时间:2017-04-27 09:56:45

标签: java tapestry

我和Tapestry一起工作,这对我来说相当新鲜。在我的应用程序中,我使用UploadedFile来获取用户选择的文件,但是当我想获取其文件名时,我得到了NullException。有什么问题?

documentFile声明:

@org.apache.tapestry5.annotations.Property
private UploadedFile documentFile;

保存时执行的方法:

@XHR
Object onSelectedFromSaveDocument() {
    String fileName = UploadFileUtils.saveFile(documentFile, DocRoot);
    this.curDocument.setType(curFileType.getValue());
    this.curDocument.setPath(fileName);
    if(this.getDocumentByKeys(this.curDocument.getDescription()) != null) {
        this.propertyDocumentDAO.merge(this.curDocument);
    } else {
        curDocument.setPropertyCode(selectedCode);
        this.propertyDocumentDAO.create(this.curDocument);
    }
    return onActionFromCancelDocument();
}

UploadFileUtils.java:

public class UploadFileUtils {
    public static String saveFile(UploadedFile file, String fileDir) {
        if(!fileDir.endsWith(File.separator)) {
            fileDir = fileDir+File.separator;
        }
        File dir = new File(fileDir);
        if(!dir.exists()) {
            dir.mkdirs();
        }
        String fileExt = file.getFileName();

        int dotPos = fileExt.lastIndexOf(".");
        if(dotPos >= 0) {
            fileExt = fileExt.substring(dotPos+1);
        }
        File copied = new File(fileDir+DateUtils.getDateTimeString()+"."+fileExt);
        file.write(copied);
        return copied.getName();
    }
}

抛出Null Exception的行是:

String fileName = UploadFileUtils.saveFile(documentFile, DocRoot);

这......

String fileExt = file.getFileName();

更新:

这是我的ViewProperty.tml

<t:if test="creatingDocument">
    <input t:type="upload" t:id="file" t:value="documentFile"
        validate="required" />

这是我的DocRoot

private final String DocRoot = this.configManager.getString("DocRoot", "/FileUpload/DocRoot/");

CONFIGMANAGER

@InjectService("BosConfigManager")
private BosConfigManager configManager;

0 个答案:

没有答案