第一个Spring MVC案例及其问题

来源:互联网 发布:淘宝客服挣钱吗 编辑:程序博客网 时间:2024/06/04 18:29

1、在web.xml文件中配置用于调度控制的servlet,用于充当前端控制器,分派请求。

<web-app><!-- 定义Spring mvc 的前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- contextConfigLocation参数指定Springmvc配置文件的路径 --><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-config.xml</param-value></init-param><!-- 启动时加载 --><load-on-startup>1</load-on-startup></servlet><!-- 让spring mvc 的前端控制器拦截所有的请求 --><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
2、实现Controller接口的单一控制器

public class FirstDemo implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {Log log = LogFactory.getLog(this.getClass());log.info("handleRequest()方法被调用!!!");//创建ModelAndView对象,该对象通常包含了返回视图名、模型 的名称及模型对象ModelAndView mv = new ModelAndView();//添加模型数据mv.addObject("message", "HELLO WORD!!!");//设置逻辑视图名,视图解析器会根据名字解析到具体的视图页面mv.setViewName("/content/welcome.jsp");//返回视图对象return mv;}}
3、配置Spring mvc的controller,在spring4.0之后,如果不配置处理映射器、处理器适配器和视图解析器,也会使用默认的。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-4.3.xsd "><!-- 配置Handle,映射/hello请求 --><bean name="/hello" class="cn.one.FirstDemo" ></bean><!-- 处理映射器将bean的name作为url进行查找,需要在配置handle时指定name --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean><!-- SimpleControllerHandlerAdapter是一个处理器适配器,所有的处理器适配器都要实现 HandlerAdapter接口 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean><!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean></beans>
4、显示结果

<body><!-- 页面可以访问Controller传递过来的message -->${requestScope.message }</body>
5、结果显示



出现的问题:

1、 No mapping found for HTTP request with URI [/springmvc1/content/welcome.jsp] in DispatcherServlet with name 'springmvc'

这是因为在web.xml文件中设置的mapping错误,Spring mvc的mapping为“/”,而不是“/*”.

2、${requestScope.message }不显示结果,显示为:“${requestScope.message }”字符串。

这是因为在jsp页面中没有打开EL表达式,需要制定打开EL表达式。

<%@ page isELIgnored="false" %>

原创粉丝点击