上一篇文章,我编写了我的第一段Spring MVC代码,文章见于:JSP学习笔记(五十七):编写第一段Spring MVC代码
现在我把代码改成基于注解驱动的:
web.xml文件保持不变
dispatcherServlet-servlet.xml文件的内容修改为:
>
<context:component-scan base-package="cn" /> 是对cn包里的所有类自动扫描,以完成bean的创建和依赖注入,相当于原来配置文件中的:
<bean id="helloWorldAction" class="cn.HelloWorldAction">
<property name="hello">
<value>Hello World!</value>
</property>
</bean>
原来每写一个类都要对应写一段配置文件,现在一句话就搞定了
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 是指启用Spring MVC的注解功能
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" /> 是指所有的页面映射路径都会加上前缀/jsp,加上后缀.jsp,这就意味着如果映射内容为hello,那么将会去找页面/jsp/hello.jsp
然后再来修改HelloWorldAction类:
;
}
}
这里的代码不用再实现Controller接口了,只需要在对应的类前添加@Controller,并且通过@RequestMapping("/helloWorld.do")制定映射关系即可。
如果页面提交/helloWorld.do?hello=HelloWorld请求,便会执行HelloWorldAction类中list函数的代码,把页面提交的参数hello提交给list函数的String hello,并且把ModelMap model的内容返回到页面的request中,return "hello",就相当于返回页面/jsp/hello.jsp
其实对于函数list,这里提交的参数是一种约定,而不是一种配置,看来了解Spring MVC里面的约定规则,至关重要。
hello.jsp页面不用修改。
到此,一个基于注解的Spring MVC代码就算完成了。
参考文章:http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/