logo头像

一路过来,不过游牧自己。。

SSM之SpringMVC(二)


上篇博文就是为了让你有一个对流程的了解,实际过程中,我们会采用更简单的方式注解开发去投入生产过程,所以还是要继续学习才行!

2、使用注解进行开发

(1)导入jar包

(2)web.xml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

注意:配置指明mvc的配置文件位置在(src/mvc.xml)

(3)Controller

1
2
3
4
5
6
7
8
9
10
@Controller
public class HelloController {
@RequestMapping(value="/hi.do")
public ModelAndView hello(){
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");
mv.addObject("msg", "annotation ------");
return mv;
}
}

(4)Springmvc配置

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 配置handerAdapter  适配器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

<bean id="jspViewResolver" 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"/>
<!-- 例:视图名为:hello 渲染后:/WEB-INF/jsp/hello.jsp 该页面-->
</bean>
<!-- spring容器扫描指定包下的所有类,如果类上有注解 那么根据注解产生相应bean对象已经映射信息 -->
<context:component-scan base-package="cn.sxt.controller"/>

3、Controller配置总结

(1)URL对应Bean

如果要使用这种配置方式,需要在xml中做出如下样式配置

1
2
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>  
<bean name="/he.do" class="cn.sxt.controller.HelloController"/>

以上配置,访问/hello.do就会寻找/hello.do的bean,此类方式适用于小型的应用系统

(2)为URL分配Bean

使用一个统一配置集合,对各个URL对应的Controller做关系映射

1
2
3
4
5
6
7
8
9
bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
<property name="mappings">
<props>
<!-- key 对应url value对应 自定义控制器的id -->
<prop key="/hello.do">helloController</prop>
</props>
</property>
</bean>
<bean id="helloController" class="cn.sxt.controller.HelloController"/>

下面的value值要和下面的id符合,此类配置还可以使用通配符,访问/hello.do时,Spring会把请求分配给HelloController进行处理

(3)URL匹配bean

1
2
3
<!--请求为hello*.do都将被匹配-->
bean id="helloController" class="cn.sxt.controller.HelloController"/>
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

(4)注解

1
<context:component-scan base-package="cn.sxt.controller"/>

加入扫描注解的包就行了!!
Controller代码中,要写对应的注解,见上面一个类的描写!

微信打赏

赞赏是不耍流氓的鼓励