SpringMVC处理方法支持如下的返回方式:ModelAndView,String, void,Model, ModelMap, Map,View,下面将对主要的返回方法进行说明:
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。该方法将处理后的数据和要返回的页面绑定在一起,大致相当于Request.setAttribute的作用,前台通过JSTL+EL表达式进行获取显示。
例如:将一个list集合返回到studentAssessDetial2页面
@RequestMapping(value = "/test") public ModelAndView ceshi(HttpServletRequest request, HttpServletResponse response) { // 实例map ModelAndView mav = new ModelAndView(); mav.setViewName("studentAssessDetial2"); String templateId = "QgBa6Dhhb7CPyYbs3mw9Go"; // 根据模板Id查询对应的考核项目 List<AssessContent> assessContentlist = assessContentBean.queryContentByTemplateId(templateId) mav.addObject("aList", assessContentlist); return mav; }</span>
前台获取并显示:
<c:forEach items="${aList}" var="a" varStatus="status"> <tr> <td><div id="${status.index+1}" name="assessSelectedDiv"> <c:out value="${status.index+1}" />、${a.assessContent}<br> <c:forEach items="${a.weights}" var="b"> <input type="radio" name="${a.id}" value="${b.id}"class="answer">${b.weightContent} <br/> </c:forEach> </div></td> </tr> </c:forEach>
指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。
@RequestMapping(value = "/testString") public String ceshiString(HttpServletRequest request, HttpServletResponse response) { // 实例map String templateId = "QgBa6Dhhb7CPyYbs3mw9Go"; // 根据模板Id查询对应的考核项目 List<AssessContent> assessContentlist = assessContentBean.queryContentByTemplateId(templateId); request.setAttribute("assessContentlist", assessContentlist); </span>return "/studentAssessDetial"; }
该实例会返回到studentAssessDetial页面,同样的通过JSTL+EL表达式可以再页面上显示出来数据
*前缀后缀在spring的配置文件中设置:
<span style="font-family:KaiTi_GB2312;"><mvc:annotation-driven /> <bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> <mvc:annotation-driven /></span>
如果返回值为空,则响应的视图页面对应为访问地址
<span style="font-family:KaiTi_GB2312;">@RequestMapping(value = "/queryStudentAssess2") public void findTeaCourseInfoByStuCode(HttpServletRequest request, HttpServletResponse response) { // 实例map Map<Serializable, Serializable> map = new HashMap<Serializable, Serializable>(); // 实例Jackson对象 JacksonJsonUntil jacksonJsonUntil = new JacksonJsonUntil(); try { map.put("studentCode", "12040261009"); @SuppressWarnings("unchecked") List<StudentTeachClass> StudentAssessList = schoolTeachingBean.findTeaCourseInfoByStuCodeInterface(map); // 转换json jacksonJsonUntil.beanToJson(response, StudentAssessList); } catch (Exception e) { e.printStackTrace(); } } </span>
Map:
与void类似
<span style="font-family:KaiTi_GB2312;"> @RequestMapping(value = "/testMap") public Map ceshimap(HttpServletRequest request, HttpServletResponse response) { // 实例map String templateId = "QgBa6Dhhb7CPyYbs3mw9Go"; // 根据模板Id查询对应的考核项目 List<AssessContent> assessContentlist = assessContentBean.queryContentByTemplateId(templateId); Map<String,List<AssessContent>> map=new HashMap<String, List<AssessContent>>(); map.put("aList", assessContentlist); return map; }</span>