spring mvc通过Model绑定值,页面通过${map.imgurl}怎么获取不了值,求解答

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
//@ResponseBody
public String upLoadRequest(@RequestParam(value = "file", required = false) MultipartFile file,
HttpServletRequest request,Model model)throws Exception {
Map map = new HashMap();
String fileName = request.getParameter("name")+"";
logger.info("文件名称:"+fileName);
SimpleDateFormat usdf=new SimpleDateFormat("yyyyMMddHHmmss");
//服务器上的文件以上传时间命名,方便修改名称。
String uptime=usdf.format(new Date());
String name[]=fileName.split("\.");
String newfileName=uptime+"."+name[1];
map.put("fileName", newfileName);
try{
File uploadPathFile = new File(uploadPath);
if(!uploadPathFile.exists()){
uploadPathFile.mkdirs();
}
logger.info("文件保存路径为:"+uploadPath);
FileUtils.copyInputStreamToFile(file.getInputStream(),
new File(uploadPathFile+File.separator+newfileName));
map.put("success", true);
/**
* 向数据库保存上传文件信息
//
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mediaTime=sdf.format(new Date());
Map params = new HashMap();
params.put("mediaTitle", fileName);
params.put("mediaSrc", newfileName);
params.put("mediaDec", request.getParameter("mediaDec")+"");
params.put("mediaTime", mediaTime);
String userId="";
try { // 防中文乱码
userId = URLDecoder.decode(request.getParameter("userId"),
"UTF-8") + "";
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
};
params.put("userId", userId);*/

        //HashMap<String, String> resultmap = pmosdao.saveFileMessage(params);
    }catch(Exception e){
        map.put("success", false);
        e.printStackTrace();
    }
    String imgUrl = uploadPath+File.separator+newfileName;
    logger.info(imgUrl);
    map.put("imgurl", imgUrl);
    model.addAttribute("map", map);
    return "test/testfileup";
}

页面是:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!doctype html>






文件上传



文件上传


var file; var fileSize; function fileSelected() { file = document.getElementById('fileToUpload').files[0]; if (file) { fileSize = 0; if (file.size > 1024 * 1024) fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB'; else fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB'; document.getElementById('fileName').innerHTML = '文件名: ' + file.name; document.getElementById('fileSize').innerHTML = '文件大小: ' + fileSize; document.getElementById('fileType').innerHTML = '文件类型: ' + file.type; } } function uploadFile() { //var userId = window.localStorage.getItem("userId"); var fd = new FormData(); fd.append("file", document.getElementById('fileToUpload').files[0]); fd.append("name", file.name); fd.append("mediaDec", fileSize); //fd.append("userId",userId); var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener("load", uploadComplete, false); xhr.addEventListener("error", uploadFailed, false); xhr.addEventListener("abort", uploadCanceled, false); xhr.open("POST", "uploadFile",true); xhr.send(fd); } function uploadProgress(evt) { if (evt.lengthComputable) { var percentComplete = Math.round(evt.loaded * 100 / evt.total); document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%'; } else { document.getElementById('progressNumber').innerHTML = 'unable to compute'; } } function uploadComplete(evt) { console.log($("#img").children()); alert($("#imgurl").val()); //$("#img").children().attr("src",evt.currentTarget.response); alert("上传完成"); } function uploadFailed(evt) { alert("There was an error attempting to upload the file."); } function uploadCanceled(evt) { alert("The upload has been canceled by the user or the browser dropped the connection."); }

获取的是这个:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no" />

<meta charset="utf-8">
<title>文件上传</title>
</head>
<body>
<header class="second">
    <b id="datestr">文件上传</b>
    <a class="right text"></a>
</header>
<div class="main2">
    <div class="row">
            <label for="file"></label>
            <input type="file" name="fileToUpload" id="fileToUpload"  multiple="multiple" onchange="fileSelected();" />
     </div>

        <div id="fileName">
        </div>
        <div id="fileSize">
        </div>
        <div id="fileType">
        </div> 
        <div class="row">
            <input type="button" onclick="uploadFile()" value="上传" />
        </div>
        <div id="progressNumber">
        </div>
</div>
<p id="img"><img alt="" src=""></p>
<input type="hidden" id="imgurl" value=${map.imgurl }>
</body>
<script type="text/javascript" src="../resources/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
var file;
var fileSize;
function fileSelected() {
    file = document.getElementById('fileToUpload').files[0];
    if (file) {
        fileSize = 0;
        if (file.size > 1024 * 1024)
            fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
        else
            fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';

        document.getElementById('fileName').innerHTML = '文件名: ' + file.name;
        document.getElementById('fileSize').innerHTML = '文件大小: ' + fileSize;
        document.getElementById('fileType').innerHTML = '文件类型: ' + file.type;
    }
}

function uploadFile() {
    //var userId = window.localStorage.getItem("userId"); 
    var fd = new FormData();
    fd.append("file", document.getElementById('fileToUpload').files[0]);
    fd.append("name", file.name);
    fd.append("mediaDec", fileSize);
    //fd.append("userId",userId);
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", uploadProgress, false);
    xhr.addEventListener("load", uploadComplete, false);
    xhr.addEventListener("error", uploadFailed, false);
    xhr.addEventListener("abort", uploadCanceled, false);
    xhr.open("POST", "uploadFile",true);
    xhr.send(fd);
}

function uploadProgress(evt) {
    if (evt.lengthComputable) {
        var percentComplete = Math.round(evt.loaded * 100 / evt.total);
        document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
    }
    else {
        document.getElementById('progressNumber').innerHTML = 'unable to compute';
    }
}

function uploadComplete(evt) {
    console.log($("#img").children());
    alert($("#imgurl").val());
    //$("#img").children().attr("src",evt.currentTarget.response);
    alert("上传完成");
}

function uploadFailed(evt) {
    alert("There was an error attempting to upload the file.");
}

function uploadCanceled(evt) {
    alert("The upload has been canceled by the user or the browser dropped the connection.");
}

</script>
</html>

推荐使用json进行数据传输!
demo:

    @RequestMapping(value="/toAddMonthDuty",method=RequestMethod.POST)
    public @ResponseBody Map<String, Object> toAddMonthDuty(
            @RequestParam(required=false,value="dscd")String dscd,
            @RequestParam(required=false,value="unitId")Integer unitId,
            @RequestParam(required=false,value="year")String yearStr,
            @RequestParam(required=false,value="month")String monthStr,
            @RequestParam(required=false,value="flag")Integer flag
            ){
            ......
            List<Map<String, Object>> list2=dutyPersonInfoService.selectListByConditions(unitId, 2);
            ......
Map<String, Object> mapList=new HashMap<String, Object>();
        mapList.put("success", true);
        mapList.put("rows", jsonArray);
        mapList.put("data0", list0);
        mapList.put("data1", list1);
        mapList.put("data2", list2);
        if(flag==1){
            mapList.put("title", year+"年"+dateStr.substring(5,7)+"月"+"...表");
        }else{
            mapList.put("title", year+"年"+dateStr.substring(5,7)+"月"+"...表");
        }
        return mapList;
    }

把@responsebody去掉

有一个modelMap比较神奇,你可以试试

解决了 谢谢各位