Spring4.0MVC學習資料,Controller中的方法詳解和使用(四)
在以前,mvc的框架,基本上就是struts框架了。但是現在不一樣了。springmvc出來了。spring的mvc框架不亞於struts了,springmvc出來了,我們有了更多的選擇。
Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。使用 Spring 可插入的 MVC 架構,可以選擇是使用內建的 Spring Web 框架還可以是 Struts 這樣的 Web 框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種檢視技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和POI。Spring
MVC 框架並不知道使用的檢視,所以不會強迫您只使用 JSP 技術。Spring MVC 分離了控制器、模型物件、分派器以及處理程式物件的角色,這種分離讓它們更容易進行定製。
jar包引入我就不講了,在前面幾章已經說過,而且我的下載資源裡也有相應的jar包進行下載。
我們看看web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Spring MVC配置 -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 可以自定義servlet.xml配置檔案的位置和名稱,預設為WEB-INF目錄下,名稱為[<servlet-name>]-servlet.xml,如spring-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/herman/ss/config/testAjax.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.herman</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
在看看spring配置檔案,testAjax.xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 啟用spring mvc 註解 -->
<context:annotation-config />
<!-- 自動註解 -->
<context:component-scan base-package="com.herman.ss.controller"></context:component-scan>
<!-- 配置http請求的json對映訊息轉換器 -->
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 完成請求和註解POJO的對映 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<!-- 對轉向頁面的路徑解析。prefix:字首, suffix:字尾 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix="" />
</beans>
ok,一切準備就緒,看看HermanController.javapackage com.herman.ss.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("super")
public class HermanController {
@RequestMapping("testAjax")
@ResponseBody
public String testAjax(){
System.out.println("我是測試Spring mvc的......");
return "{id:4,text:'Spring mvc'}";
}
@RequestMapping("html")
public String testHtml(){
//請求被重定向到herman.jsp頁面
return "redirect:/herman.jsp";
}
@RequestMapping("testforward")
public String testforward(){
//請求被轉發到forward.jsp頁面
return "forward:/forward.jsp";
}
@RequestMapping(value="root")
public String root(){
return "root.jsp";
}
@RequestMapping(value="test")
public String test(){
return "html/test.html";
}
@RequestMapping(value="suffix")
public String suffix(){
//如果想返回不帶字尾的頁面,則必須在配置xml中配置p:suffix=""
//如:p:suffix=".jsp"
return "suffix";
}
@RequestMapping(value="mav")
public ModelAndView mav(){
//如果想返回不帶字尾的頁面,則必須在配置xml中配置p:suffix=""
//如:p:suffix=".jsp"
ModelAndView mav=new ModelAndView();
mav.setViewName("html/mav.html");
return mav;
}
@RequestMapping(value="request")
public ModelAndView request(HttpServletRequest request, HttpServletResponse response){
//帶request請求引數的示例
//如:p:suffix=".jsp"
ModelAndView mav=new ModelAndView();
mav.setViewName("html/mav.html");
System.out.println(request.getParameter("testVale"));
return mav;
}
@RequestMapping(value="request")
public ModelAndView session(HttpSession httpSession, HttpServletResponse response){
//帶request請求引數的示例
//如:p:suffix=".jsp"
ModelAndView mav=new ModelAndView();
mav.setViewName("html/mav.html");
return mav;
}
}
好吧就到這裡結束了吧,我們下章再見。歡迎大家關注我的部落格!!
如有不懂,疑問或者欠妥的地方,也或者需要原始碼,請加QQ群:135430763 進行反饋,共同學習!
相關文章
- VueJS中學習使用Vuex詳解VueJS
- Kubernetes Controller詳解Controller
- (資料科學學習手札62)詳解seaborn中的kdeplot、rugplot、distplot與jointplot資料科學
- 大資料學習方法,學大資料需要的基礎和路線大資料
- jQuery中的Deferred詳解和使用jQuery
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 詳解MySQL資料備份之mysqldump使用方法MySql
- SpringMVC【開發Controller】詳解SpringMVCController
- jQuery中的Deferred-詳解和使用jQuery
- 分享學習大資料的方法大資料
- Docker學習總結(四)——容器間的通訊和資料卷Docker
- MySQL 中 blob 和 text 資料型別詳解MySql資料型別
- Anovos解決了機器學習中資料的漂移和穩定性 – thenewstack機器學習
- 【vue3】學習對store中資料的使用Vue
- 使用CRM系統資料分析的四種方法
- go微服務框架go-micro深度學習(四) rpc方法呼叫過程詳解Go微服務框架深度學習RPC
- Python3中使用PyMongo的方法詳解PythonGo
- 資料庫框架Sugar的使用詳解資料庫框架
- 一文詳解資料科學家的必備技能(附學習資源)資料科學
- 詳解MySQL中的SQRT函式的使用方法MySql函式
- Python 中__new__方法詳解及使用Python
- 資料庫中的正規化和反正規化詳解!資料庫
- Pytest學習(四) - fixture的使用
- 零基礎大資料學習線路詳解大資料
- 機器學習中資料缺失的處理及建模方法機器學習
- DeerOJ的前端框架介紹-libs資料夾和controller資料夾前端框架Controller
- Unix系統中的dot命令的使用方法詳解
- RabbitMQ的詳解和使用MQ
- 工作流中的資料持久化詳解!Activiti框架中JPA的使用分析持久化框架
- kernel_mktime() 詳解 —— Linux-0.11 學習筆記(四)Linux筆記
- Java中的方法引用詳解Java
- JVM詳解(四)——執行時資料區-堆JVM
- Spring Boot(四):Thymeleaf 使用詳解Spring Boot
- MyBatis使用四(查詢詳解)MyBatis
- Oralce 使用SQL中的exists 和not exists 用法詳解SQL
- 萬里GreatDB資料庫的學習之路--GreatDB資料庫的管理和使用(2)資料庫
- 大資料就業指導:前景分析和學習方法大資料就業
- 資料分析應學習邏輯思維和分析方法
- 史上最全、最詳細的Docker學習資料Docker