ImportController.java
package sk.iway.iwcm.xls;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.editor.rest.WebPagesListener;
import sk.iway.iwcm.system.spring.SpringUrlMapping;
import sk.iway.iwcm.users.UsersDB;
/**
* Universal controller for importing data from XLS files.
* See example in /admin/spec/import_xls.jsp file, your import class is send as URL parameter type.
* Your excel file must have first row with column names, and class must extend ExcelImportJXL class.
* See example in ImportStructureExcel.
*/
@Controller
@PreAuthorize("@WebjetSecurityService.isAdmin()")
public class ImportController {
@PostMapping("/admin/import/excel/")
@ResponseBody
public void importFromExcel(@RequestParam("file") CommonsMultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
Identity user = UsersDB.getCurrentUser(request);
if (user == null || user.isAdmin()==false) {
SpringUrlMapping.redirectToLogon(response);
return;
}
ImportService.importFromExcel(file, request, response);
} catch(Exception ex) {
Logger.error(WebPagesListener.class, ex);
}
}
}