在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ JAVA 在request里取值,兩次取的不一樣

JAVA 在request里取值,兩次取的不一樣

我是這么在request里取得值:

TargetFile targetFile = (TargetFile) request.getAttribute(TARGET_FILE);

然后這個(gè)方法分別在一覽畫面和詳細(xì)畫面調(diào)用過兩次,方法如下

public ActionForward execute(ActionMapping mapping, ActionForm aform, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        SessionValidator.getAccount(request);

        TargetFile targetFile = (TargetFile) request.getAttribute(TARGET_FILE);

        if (targetFile == null) {
            log.warn("Invalid request for FileDownloadAction");
            return mapping.findForward("error");
        }

        try {
            if (StringUtils.isBlank(targetFile.getRepositoryFileId())) {
                log.warn("Invalid request for FileDownloadAction: targetFileName is blank: " + targetFile);
                return mapping.findForward("error");
            }

            // Content-Type
            String ct = targetFile.getContentType();
            if (ct == null) {
                ct = FILEDOWNLOAD_OCTET_TYPE;
            }

            InputStream in = targetFile.getInputStream(); // possibly exception, but never null.
            File file = File.createTempFile("dnload", null);
            try {
                FileUtil.copyFileFromInputStream(in, file);
                String uaStr = request.getHeader("User-Agent");
                if (StringUtils.contains(uaStr, "iPhone") || StringUtils.contains(uaStr, "iPad")) {
                    downFileFromIpadOrIphone(ct, file, targetFile.getOriginalFilename(), request, response);
                } else {
                    downFile(ct, file, targetFile.getOriginalFilename(), request, response);
                }
            } catch (FileNotFoundException e) {
                log.error(String.format("TargetFile %s not found", targetFile.getRepositoryFileId()));
            } finally {
                file.delete();
            }
        } finally {
            //@since 4.0.2
            targetFile.closeInputStreamQuietly();
        }

        return null;
    }

問題來了,在一覽畫面:
圖片描述

在詳細(xì)畫面:
圖片描述

在詳細(xì)畫面那個(gè)originalFilename為什么是空啊?

回答
編輯回答
瘋浪

stream,讀一次就空了啊。就像袋子里有個(gè)蘋果,你拿出來袋子就空了。要么把你讀出來的stream set回去,要么把你讀出來的stream作為參數(shù)傳遞,不能多次讀stream。

2017年5月23日 17:34