spring MVC入门
来源:互联网 发布:iptv与网络电视的区别 编辑:程序博客网 时间:2024/06/05 14:53
直接上例子吧,这是一个WebProject
首先是Web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <!-- 使用ContextLoaderListener配置时,需要告诉它Spring配置文件的位置 -->
- <!-- 如果没有指定,上下文载入器会在/WEB-INF/applicationContext.xml中找Spring配置文件 -->
- <!-- 我们可以通过在Servlet上下文中设置contextConfigLocation参数,来为上下文载入器指定一个或多个Spring配置文件 -->
- <!-- 注意:contextConfigLocation参数是一个用逗号分隔的路径列表,其路径是相对于Web系统的根路径的 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/springmvc-servlet.xml, classpath:applicationContext-*.xml</param-value>
- </context-param>
- <!-- SpringMVC的前端控制器 -->
- <!-- 当DispatcherServlet载入后,它将从一个XML文件中载入Spring的应用上下文,该XML文件的名字取决于<servlet-name> -->
- <!-- 这里DispatcherServlet将试图从一个叫做springmvc-servlet.xml的文件中载入应用上下文,其默认位于WEB-INF目录下 -->
- <!-- 所以ContextLoaderListener参数值也可写成<param-value>classpath:applicationContext-*.xml</param-value> -->
- <servlet>
- <servlet-name>springmvc</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springmvc</servlet-name>
- <url-pattern>*.htm</url-pattern>
- </servlet-mapping>
- <!-- 配置上下文载入器 -->
- <!-- 上下文载入器载入除DispatcherServlet载入的配置文件之外的其它上下文配置文件 -->
- <!-- 最常用的上下文载入器是一个Servlet监听器,其名称为ContextLoaderListener -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
接下来是SpringMVC的配置文件springmvc-servlet.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <!-- 【配置映射处理器】 -->
- <!-- SpringMVC自带的映射处理器均实现了Spring的Ordered接口,这意味着我们可以在应用系统中声明多个处理器映射 -->
- <!-- 并且可以设置它们的优先级,这主要体现在order属性上,其值越小,则对应的该映射处理器的优先级越高 -->
- <!-- 本例中,SimpleUrlHandlerMapping的order值比BeanNameUrlHandlerMapping的小 -->
- <!-- 这意味着DispatcherServlet在映射URL的时候,首先会咨询SimpleUrlHandlerMapping -->
- <!-- 只有在SimpleUrlHandlerMapping无法返回结果时,才咨询BeanNameUrlHandlerMapping -->
- <bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
- <property name="order" value="1"/>
- </bean>
- <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- <property name="order" value="0"/>
- <property name="mappings">
- <props>
- <prop key="/userlist22.htm">userController</prop>
- <prop key="/userlist33.htm">userController</prop>
- </props>
- </property>
- </bean>
- <!-- 这里的id="userController"对应的是<bean id="simpleUrlMapping">中的<prop>里面的value -->
- <bean id="userController" class="com.jadyer.controller.UserController"/>
- <!-- DispatcherServlet使用的默认处理器映射是BeanNameUrlHandlerMapping,它使用URL样式的名字 -->
- <bean name="/userlist11.htm" class="com.jadyer.controller.UserController"/>
- </beans>
然后是我们常见的Spring配置文件applicationContext-view.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <!-- 【配置视图解析器】 -->
- <!-- InternalResourceViewResolver会在ModelAndView返回的视图名前加上prefix指定的前缀,再在最后加上suffix指定的后缀 -->
- <!-- 由于UserController返回的ModelAndView中的视图名是userlist,故该视图解析器将在/WEB-INF/jsp/userlist.jsp处查找视图 -->
- <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/"/>
- <property name="suffix" value=".jsp"/>
- </bean>
- </beans>
接下来是首页index.jsp
- <%@ page language="java" pageEncoding="UTF-8"%>
- <a href="<%=request.getContextPath()%>/userlist11.htm">Visit "/userlist11.htm" to my SpringMVC demo page</a>
- <br/>
- <br/>
- <a href="<%=request.getContextPath()%>/userlist22.htm">Visit "/userlist22.htm" to my SpringMVC demo page</a>
- <br/>
- <br/>
- <a href="<%=request.getContextPath()%>/userlist33.htm">Visit "/userlist33.htm" to my SpringMVC demo page</a>
下面是响应请求结果的userlist.jsp
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <h2>Welcome to my SpringMVC demo page</h2>
- <c:forEach items="${users}" var="user">
- <c:out value="${user.username}"/><br/>
- <c:out value="${user.password}"/><br/>
- <c:out value="${user.address}"/><br/>
- <c:out value="${user.age}"/><br/>
- </c:forEach>
- <!--
- 以下是,处理对"/userlist.htm"的请求的整个工作步骤
- 1、DispatcherServlet接受对"/userlist.htm"样式的URL请求
- 2、DispatcherServlet询问BeanNameUrlHandlerMapping
- 询问Bean的名字是"/userlist.htm"的控制器,并且找到了UserController的Bean
- 3、DispatcherServlet分发给UserController来处理这个请求
- 4、UserController返回一个ModelAndView对象,它带有一个逻辑视图名"userlist",以及保存在"users"属性中的值
- 5、DispatcherServlet询问它的视图解析器(配置为InternalResourceViewResolver)
- 查找逻辑名为userlist的视图,InternalResourceViewResolver返回/WEB-INF/jsp/userlist.jsp路径
- 6、DispatcherServlet将请求导向/WEB-INF/jsp/userlist.jsp页面
- -->
这是用到的User.java
- package com.jadyer.model;
- /**
- * User
- * @author 宏宇
- * @editor Jan 27, 2012 11:41:15 AM
- */
- public class User {
- private String username;
- private String password;
- private String address;
- private Integer age;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
最后是SpringMVC的核心控制器UserController.java
- package com.jadyer.controller;
- import java.util.ArrayList;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.AbstractController;
- import com.jadyer.model.User;
- /**
- * UserController
- * @author 宏宇
- * @editor Jan 27, 2012 11:57:33 AM
- */
- public class UserController extends AbstractController {
- @Override
- protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
- List<User> userList = new ArrayList<User>();
- User user11 = new User();
- User user22 = new User();
- user11.setUsername("张起灵");
- user11.setPassword("02200059");
- user11.setAddress("阴山古楼");
- user11.setAge(27);
- user22.setUsername("吴三省");
- user22.setPassword("95000220");
- user22.setAddress("蛇沼鬼城");
- user22.setAge(37);
- userList.add(user11);
- userList.add(user22);
- //ModelAndView类在SpringMVC中是一个很重要的概念
- //控制器执行方法都必须返回一个ModelAndView,ModelAndView对象保存了视图以及视图显示的模型数据
- //第一个参数:视图组件的逻辑名称。这里视图的逻辑名称是userlist,视图解析器会使用该名称查找实际的View对象
- //第二个参数:传递给视图的,模型对象的名称
- //第三个参数:传递给视图的,模型对象的值
- return new ModelAndView("userlist", "users", userList);
- }
- }
- 【spring】spring MVC入门
- 【Spring】Spring MVC入门
- Spring MVC 入门
- Spring MVC入门
- Spring MVC 入门
- spring mvc入门
- spring mvc入门
- Spring MVC 入门
- 入门spring MVC
- Spring MVC 入门
- Spring MVC 入门 @ MultiActionController
- spring mvc入门
- Spring MVC入门
- Spring MVC 入门
- Spring MVC 入门
- Spring MVC 入门
- Spring mvc 入门
- Spring MVC 入门
- JDK1.5新特性
- android102--MVC原理 和在安卓中的应用
- HDU 1011 Starship Troopers - 01树形dp 有坑啊!!
- SQL中的循环、for循环、游标
- 使用响应流来输出文件(适合导出文件使用,本文主要测试的是导出excel)
- spring MVC入门
- 【COCOS2DX-LUA 脚本开发之七】解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 【MS编程之美资格赛】Problem A及Problem B
- A+B
- VirtualBox报“uuid already exists”错误
- app store 申请
- MyBatis源码赏析3-配置
- Webservice使用
- Manually install DB2 on Linux