第九章-springmvc框架
分类: ssm 专栏: ssm框架课 标签: springmvc
2022-12-20 19:28:35 949浏览
springmvc框架的学习
1.MVC模式
2.搭建 springMVC环境
2.1第一个springMVC程序
- 引入jar
- 编写springmvc配置文件
<bean name="/hellomvc" class="com.jf3q.part9.controller.HelloController"> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- 修改web.xml
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <!--加载springMVC的配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!--表示当前servlet会在系统启动时被载入--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
- 编写controller
public class HelloController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { System.out.println("springMVC框架搭建成功"); return new ModelAndView("hello"); } }
2.2使用注解开发springMVC框架
- 修改springmvc配制文件
<!--开启springmvc注解驱动--> <mvc:annotation-driven/> <!--注解扫描包--> <context:component-scan base-package="com.jf3q.part9.controller"/> <!--配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- 编写controller
@Controller public class HelloController { @RequestMapping("hellomvc") public String hello(){ return "hello"; } }
2.3springMVC框架梳理
3.前后端数据交互
3.1@RequestMapping注解
接收get请求
@RequestMapping(value = "hellomvc" ,method = RequestMethod.GET)
接受post请求
@RequestMapping(value = "hellomvc" ,method = RequestMethod.POST)
3.2入参处理
被@RequestParam 修饰后的参数默认是必传的,不带@RequestParam 的时候是选传,@RequestParam(required = false) 可以设置选传参数
Logger log=Logger.getLogger(HelloController.class); @RequestMapping(value = "hellomvc" ,method = RequestMethod.GET) public String hello(@RequestParam String username){ log.info("前端传递的参数"+username); return "hello"; }
三种入参处理
@RequestMapping("/addUser") @ResponseBody public String addUser(String username,int age){ System.out.println("username:"+username+"age:"+age); return "获取成功"; } @RequestMapping("/addUser2") @ResponseBody public String addUser(UserInfo userInfo){ System.out.println("username:"+userInfo.getUsername()+"\n age:"+userInfo.getAge()); return "获取成功"; } @RequestMapping("/addUser3") @ResponseBody public String addUser(HttpServletRequest request){ System.out.println("username:"+request.getParameter("username")+"\n age:"+request.getParameter("age")); return "获取成功"; }
3.3出参处理
1.ModelAndView的方式
@RequestMapping(value = "hellomvc" ,method = RequestMethod.GET) public ModelAndView hello(@RequestParam(required = false) String username){ log.info("前端传递的参数"+username); ModelAndView modelAndView = new ModelAndView("hello"); modelAndView.addObject("realName",username); return modelAndView; }
2.Model的方式传递
@RequestMapping(value = "hellomvc" ,method = RequestMethod.GET) public String hello(String username, Model model){ log.info("前端传递的参数"+username); model.addAttribute("realName",username); return "hello"; }
备注:model.addAttribute("realName",username);可以不写键,如果不写的话,默认使用对象的类型作为key
3.Map的方式传递
@RequestMapping(value = "hellomvc" ,method = RequestMethod.GET) public String hello(String username, Map map){ log.info("前端传递的参数"+username); map.put("realName",username); return "hello"; }
补充
像这种control里面啥也没干直接跳转目标页面的,这种可以换种写法——配置springmvc(纯纯的页面跳转)
传数组
@RequestMapping("/reg") public String reg(String[] strs){ System.out.println(Arrays.toString(strs)); return "success"; }
<form action="reg" method="post"> <input name="strs"><br> <input name="strs"><br> <input name="strs"><br> <input type="submit" value="提交"> </form>
传list
@Data public class UserVo { List<UserInfo> users; }
@RequestMapping("/addUser2") public String addUser(UserVo userVo, Model model){ System.out.println("userVo:"+userVo); model.addAttribute("userVo" ,userVo); return "success"; }
<f orm action="addUser2" method="post"> 用户名1: <input name="users[0].username" ><br> 年龄1:<input name="users[0].age"><br> 用户名2: <input name="users[1].username" ><br> 年龄2:<input name="users[1].age"><br> <input type="submit" value="提交"> </form>
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
您可能感兴趣的博客
他的专栏
他感兴趣的技术