\r
package org.argeo.slc.web.mvc.controllers;\r
\r
+import javax.servlet.http.HttpServletRequest;\r
+\r
import org.argeo.slc.SlcException;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
-import org.argeo.slc.web.mvc.result.ResultExcelView;\r
-import org.argeo.slc.web.mvc.result.ResultPdfView;\r
import org.springframework.stereotype.Controller;\r
+import org.springframework.ui.ModelMap;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
import org.springframework.web.bind.annotation.RequestParam;\r
-import org.springframework.web.servlet.ModelAndView;\r
\r
/**\r
* Sends back the results, rendered or as collection.\r
\r
@Controller\r
public class RenderingResultController {\r
+ // private static final Log log =\r
+ // LogFactory.getLog(RenderingResultController.class);\r
\r
- public final static String KEY_ANSWER = "__answer";\r
public final static String MODELKEY_RESULT = "result";\r
\r
// IoC\r
- private TreeTestResultDao testResultDao;\r
- private ResultExcelView resultExcelView;\r
- private ResultPdfView resultPdfView;\r
+ private TreeTestResultDao treeTestResultDao;\r
\r
- @RequestMapping("/resultView.pdf")\r
- public void getPdfResultView(@RequestParam(value = "uuid") String uuid,\r
- ModelAndView modelAndView) {\r
- TreeTestResult result = testResultDao.getTestResult(uuid);\r
- if (result == null)\r
- throw new SlcException("No result found for uuid " + uuid);\r
- modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result);\r
- modelAndView.setView(resultPdfView);\r
- }\r
+ @RequestMapping("/resultView.*")\r
+ public String getPdfResultView(@RequestParam("uuid") String uuid,\r
+ ModelMap model, HttpServletRequest request) {\r
\r
- @RequestMapping("/resultView.xls")\r
- public void getXlsResultView(@RequestParam(value = "uuid") String uuid,\r
- ModelAndView modelAndView) {\r
- TreeTestResult result = testResultDao.getTestResult(uuid);\r
+ TreeTestResult result = treeTestResultDao.getTestResult(uuid);\r
if (result == null)\r
throw new SlcException("No result found for uuid " + uuid);\r
- modelAndView.getModelMap().addAttribute(MODELKEY_RESULT, result);\r
- modelAndView.setView(resultExcelView);\r
- }\r
+ model.addAttribute(MODELKEY_RESULT, result);\r
\r
- public void setResultExcelView(ResultExcelView resultExcelView) {\r
- this.resultExcelView = resultExcelView;\r
+ String docType = request.getRequestURI().substring(\r
+ request.getRequestURI().lastIndexOf(".") + 1);\r
+\r
+ if ("pdf".equals(docType))\r
+ return "resultPdfView";\r
+ if ("xls".equals(docType))\r
+ return "resultExcelView";\r
+ if ("xslt".equals(docType))\r
+ return "resultXsltView";\r
+ if ("xml".equals(docType))\r
+ return "resultXmlView";\r
+\r
+ throw new SlcException("No renderer found for files of extension "\r
+ + docType);\r
}\r
\r
- public void setResultPdfView(ResultPdfView resultPdfView) {\r
- this.resultPdfView = resultPdfView;\r
+ // IoC\r
+\r
+ public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao) {\r
+ this.treeTestResultDao = treeTestResultDao;\r
}\r
\r
}\r