配置springMVC
springMVC.xml文件
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
<!-- 1.配置注解开发Handler -->
<!-- <bean class="com.gy.crm.controller.UserController" /> -->
<mvc:annotation-driven />
<context:component-scan
base-package="com.gy.crm.controller"></context:component-scan>
<!-- 2.注解映射器 -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<!-- 3.注解适配器 -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
<!-- 4.配置视图解析器 -->
<!-- 配置视图解析器 要求将jstl的包加到classpath -->
<!-- ViewResolver -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
理解MVC思想
model view controller
springMVC 的流程
1.用户发出request请求,请求至DispatcherServlet前端控制器
2.前端控制器请求HandleMapping 处理器映射器去查找Handle
3.HandleMappring 根据url等一些配置规则将查找到的Handle返回给前端控制器
4.前端控制器调用HandleAdapter适配器执行Handle
5.Handle执行完后返回一个ModelAndView给前端控制器
6.前端控制器调用ViewResolver视图解析器解析ModelAndView对象,生成view并返回给前端控制器
7.前端控制器调用view的渲染视图将模型数据填充到request域中
8.前端控制器向用户响应结果(jsp页面,json数据等)
代码中实现注解方式调用方法
@Controller
@RequestMapping(value = "/UserController")
public class UserController {
//在RequestMapping中如果只有一个参数则默认为value
@RequestMapping(value = "/list.do")
public String list(HttpServletRequest request, Model model) throws Exception {
List<User> userList = new ArrayList<User>();
User user1 = new User();
user1.setName("张三");
user1.setAge("23");
user1.setHobby("篮球");
user1.setUser_name("zs");
user1.setPassword("111");
user1.setCreate_time(new Date());
User user2 = new User();
user2.setName("李四");
user2.setAge("32");
user2.setHobby("足球");
user2.setUser_name("ls");
user2.setPassword("111");
user2.setCreate_time(new Date());
userList.add(user1);
userList.add(user2);
// request.setAttribute("userList", userList);
model.addAttribute("userList",userList);
return "/system/user/userlist";
}
@RequestMapping(value = "/regist.do")
public String regist(HttpServletRequest request, Model model,User user,HttpServletResponse response) throws Exception {
System.out.println("user_name="+user.getUser_name());
System.out.println("password="+user.getPassword());
model.addAttribute("user", user);
// request.setAttribute("user", user);
// request.getRequestDispatcher("/login.jsp").forward(request, response);
return "/login";
}
}
在前端页面中直接跳转或者表单提交action="userController/list.do"或者action="userController/regist.do"就能直接调用该方法