以前曾經提到過的三種控制器在spring3.0中都已經被明確標記爲過期了,spring3.0推薦使用註解的方式替代三種控制器,實際上使用註解的方式可以大大提升開發效率。前端
使用註解須要對配置文件進行改動:java
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xmlns:mvc="http://www.springframework.org/schema/mvc" 7 xsi:schemaLocation=" 8 http://www.springframework.org/schema/mvc 9 http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 10 http://www.springframework.org/schema/beans 11 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 12 http://www.springframework.org/schema/context 13 http://www.springframework.org/schema/context/spring-context-3.2.xsd 14 http://www.springframework.org/schema/aop 15 http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"> 16 <!-- 註解驅動 --> 17 <mvc:annotation-driven /> 18 <!-- 掃描組件 --> 19 <context:component-scan base-package="com.kdyzm.controller"></context:component-scan> 20 <!-- 配置內部視圖資源解析器 --> 21 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 22 <property name="prefix" value="/"></property> 23 <property name="suffix" value=".jsp"></property> 24 </bean> 25 </beans>
如上所示,須要增長註解驅動,同時須要進行包掃描。mysql
該註解是SpringMVC中的核心註解,它直接加到類和方法上;加到類名上表明父路徑,加到方法上表明子路徑,訪問的方法就是父路徑+子路徑,以下所示:git
@Controller @RequestMapping(value="/person") public class PersonController { @Resource(name="personService") private PersonService personService; @RequestMapping(value="/save")
public String savePerson(Person p){ this.personService.saveEntity(p); return "redirect:/person/listAll"; } }
第一個註解加到了類名上:/person,第二個註解加到了方法上:/save,那麼訪問該控制器的方法就是:http://localhost:8080/springmvc2/person/savegithub
直接將須要的參數放到方法參數列表中,而後在方法中直接使用便可;能夠傳遞的參數類型有:Seriable、自定義對象、HttpServletRequest、Model等,放到了方法的參數列表中的參數會自動進行識別並封裝。web
如對於一個表單提交的數據,能夠直接在控制器方法中定義一個對象實體的參數,這樣數據就會自動封裝到對象中了;也能夠只放置須要的參數類型,好比public updatePerson(String id),這樣前端傳遞過來的id的值就直接拿過來了;若是參數類型是HttpServletRequest,那麼可使用該對象獲取各類請求參數,入public String updatePerson(HttpServletRequest request);若是參數是Model類型的,那麼實際上就將全部的請求都放到了一個Map對象中,經過Model對象的asMap方法就可以獲取該Map對象,接下來直接使用key值獲取對應的請求值就能夠了。spring
四種獲取參數的方法以下代碼所示:sql
@RequestMapping(value="updatePersonInf") public String updateMethod(String id,Person person,HttpServletRequest request,Mode model){ System.out.println(id); System.out.println(person.getId()); System.out.println(request.getParameter("id")); System.out.println(model.asMap().get("id"));
return "redirect:/person/listAll"; }
SpringMVC中默認使用轉發跳轉到目標頁,若是須要重定向的話,則使用redirect:前綴修飾,如上代碼所示。express
antlr-2.7.6.jar
aopalliance.jar
aspectjrt.jar
aspectjweaver.jar
c3p0-0.9.5.jar
commons-collections-3.1.jar
commons-logging-1.1.3.jar
dom4j-1.6.1.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jstl.jar
jta-1.1.jar
junit.jar
log4j-1.2.15.jar
mchange-commons-java-0.2.9.jar
mysql-connector-java-5.1.10-bin.jar
slf4j-api-1.5.8.jar
slf4j-log4j12.jar
spring-aop-3.2.0.RELEASE.jar
spring-aspects-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-context-support-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
spring-jdbc-3.2.0.RELEASE.jar
spring-orm-3.2.0.RELEASE.jar
spring-tx-3.2.0.RELEASE.jar
spring-web-3.2.0.RELEASE.jar
spring-webmvc-3.2.0.RELEASE.jar
spring-webmvc-portlet-3.2.0.RELEASE.jar
standard.jarapi
整合SpringMVC和Hibernate,因爲SpringMVC也是Spring的一部分,因此也能夠說成第二種"SSH(SpringMVC、Spring、Hibernate)"
Spring版本:spring3.2.0
Hibernate版本:hibernate3.5.6
mysql版本:5.5.25
Eclipse版本:Version: Mars Release (4.5.0)