参考之前springMVC的hello word,如果使用注解方式与前面xml配置有什么不同。
链接:https://blog.csdn.net/u012777599/article/details/89490212
使用注解的第一步
Web.Xml配置
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- init-param将springMVC.xml文件配置到src下 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> |
这里与前面helo word中的web.xml配置基本一样,多了红色部分作用是将【servlet-name】-servlet.xml文件的名字固定为springmvc.xml,且位置是在src下的,这里不写的话就和前面一样。也是可以的。
使用注解第二步
Springmvc.xml配置
<!-- 无需BeanNameUrlHandlerMapping与SimpleControllerHandlerAdapter --> <!-- 配置渲染器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 扫描该包下面的注解 --> <context:component-scan base-package="com.controller"/> |
使用注解方式在配置上省略了两个bean的配置,只需要配置视图解析器和红色部分扫描指定包下的注解即可。
注意:如果配置了BeanNameUrlHandlerMapping与SimpleControllerHandlerAdapter的话在访问controller的时候会出现404错误
Eclipse控制台信息
No mapping found for HTTP request with URI [/springMVC02/hello.html] in DispatcherServlet with name 'springMVC02' |
一开始我还以为是web.xml没有配置好导致404的。出现以上错误检查下是不是画蛇添足写了这两个类的bean导致扫描不到controller
使用注解第三步
Controller类
//表示这个类是一个controller @Controller public class HelloController { //hello请求执行的controller方法 @RequestMapping("/hello") public ModelAndView hello(HttpServletRequest req,HttpServletResponse rep) { ModelAndView mv=new ModelAndView(); mv.addObject("msg", "SpringMVC hello"); mv.setViewName("hello"); return mv;
} } |
使用注解第四步
Jsp页面
<body> ${msg} </body> |
到这里就可以测试下了