SpringMVC作用域传值
Web.mxl修改
添加一个配置节点,这个节点用来读取src根目录下的配置文件,添加了该节点之后,那么springmvc的核心配置文件名就可以随意啦!
<servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置一个节点去读取mvc-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <!-- classpath:表示根目录src。表示读取src目录下的mvc-servlet.xml --> <param-value>classpath:mvc-servlet.xml</param-value> </init-param>
<!--当程序运行的时候就加载读取servlet、DispatcherServlet --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<init-param> <param-name>contextConfigLocation</param-name> <!-- classpath:表示根目录src。表示读取src目录下的mvc-servlet.xml --> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> 推荐使用配置方式! |
控制层中的配置@RequestMapping(”/”) /:表示项目的根目录。如果这样配置之后,项目就会在启动的时候自动加载login.jsp!
@RequestMapping("/") public String login(){ return "login"; } |
Web.xml中配置启动页
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> 如果程序中有index.jsp或者是index.html 则在程序运行时,会自动加载。如果把web.xml中的欢迎页删掉,此时程序会去tomcat的service中的web.xml中去寻找欢迎页!并且还会继续访问index.jsp! |
使用Servlet四大作用域传值:
pageContext,ServletRequest,HttpSession,ServletContext;
@RequestMapping("loginOne") public String loginOne(HttpServletRequest request){ String name = request.getParameter("name"); request.setAttribute("name", name); if ("admin".equals(name)) { return "ok"; }else{ return "ng"; } } |
使用model对象传值
@RequestMapping("loginTwo") public String loginTwo(HttpServletRequest request,Model model){ String name = request.getParameter("name"); model.addAttribute("name", name); if ("admin".equals(name)) { return "ok"; }else{ return "ng"; } } |
使用modelandView对象传值
@RequestMapping("loginThree") public ModelAndView loginThree(HttpServletRequest request,ModelAndView mv){ String name = request.getParameter("name"); mv.addObject("name", name); if ("admin".equals(name)) { mv.setViewName("ok"); }else{ mv.setViewName("ng"); } return mv; } 注意:使用ModelAndView 的时候,注意方法的返回类型! |
使用Map对象传值
@RequestMapping("loginFour") public String loginFour(HttpServletRequest request,Map map){ String name = request.getParameter("name"); map.put("name", name); if ("admin".equals(name)) { return "ok"; }else{ return "ng"; } } |