comment obtenir getServletContext() dans le Contrôleur spring mvc

J'ai besoin de télécharger des images dans mon projet. Comment obtenir le chemin de téléchargement dans spring mvc.
Le chemin est;

/home/cme/project/eclipse/workspace_12_11/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/fileUploadTester/upload

L'erreur suivante;

The method getServletContext() is undefined for the type HomePageController

s'affiche lorsque j'utilise ce code;

String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY;

Mon code est

public ModelAndView UploadPhoto(@ModelAttribute User user, HttpServletRequest request, HttpServletResponse response) throws IOException {
final String UPLOAD_DIRECTORY = "upload";
final int THRESHOLD_SIZE = 1024 * 1024 * 3; //3MB
final int MAX_FILE_SIZE = 1024 * 1024 * 40; //40MB
final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; //50MB
String value[] = new String[10];
int i = 0;
//checks if the request actually contains upload file
if (!ServletFileUpload.isMultipartContent(request)) {
PrintWriter writer = response.getWriter();
writer.println("Request does not contain upload data");
writer.flush();
return; //here is error This method must return a result of type ModelAndView
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE); //here error The method setFileSizeMax(int) is undefined for the type ServletFileUpload
upload.setSizeMax(MAX_REQUEST_SIZE);
String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY; //here error The method getServletContext() is undefined for the type Homepage Controller
//creates the directory if it does not exist
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
try {
List < FileItem > items = upload.parseRequest(request); //request is HttpServletRequest
for (FileItem item: items) {
if (item.isFormField()) { //text fields, etc...
String fieldName = item.getFieldName();
System.out.print("fieldname" + fieldName);
value[i] = item.getString();
System.out.print("from uploader" + value[i]);
i++;
} else {
//String fileName=new File(item.getName()).getName();   Use this to use default file name
String name = value[0];
System.out.println("file uploader name" + name);
String filePath = uploadPath + File.separator + name;
System.out.println(filePath);
File storeFile = new File(filePath);
try {
item.write(storeFile);
} catch (Exception ex) {
}
}
}
System.out.println("uploaded successfully");
} catch (Exception ex) {
System.out.println("error not uploaded");
}
return new ModelAndView("ChangePhoto");
}

Trois erreur

  1. Cette méthode doit retourner un résultat de type ModelAndView
  2. La méthode setFileSizeMax(int) n'est pas défini pour le type ServletFileUpload
  3. La méthode getServletContext() n'est pas défini pour le type de la page d'Accueil de Contrôleur de