日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC 实例应用 -- 不同方式控制器实现与参数传递

發布時間:2023/12/18 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC 实例应用 -- 不同方式控制器实现与参数传递 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加spring相關包,筆者用最新包3.2.2,可以去官方下載最新包http://www.springsource.org/spring-community-download

模塊說明,注釋在代碼中,方便理解

實例一:使用實現接口的方法實現控制器

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"><servlet><servlet-name>hello</servlet-name> <!-- 此處用的是hello,所以同目錄下的想xml文件名應該為hello-servlet.xml --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>

創建關聯的hell-servlet.xml(在/WEB-INF/目錄下創建)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置控制器,請求路徑/welcome.html,clas指定處理類 --><bean name="/welcome.html" class="com.springmvc.controller.WelcomeController" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 定義視圖前綴格式 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 定義視圖后綴格式 --><property name="suffix" value=".jsp"/></bean> </beans>

編寫控制器類WelcomeController.java

package com.springmvc.controller;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController;/**** WelcomeController.java ** @version : 1.1* * @author : 蘇若年 <a href="mailto:DennisIT@163.com">發送郵件</a>* * @since : 1.0 創建時間: 2013-4-12 下午10:52:16* * TODO : **/ public class WelcomeController extends AbstractController{@Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {System.out.println("com.springmvc.controller.WelcomeController");//返回視圖return new ModelAndView("welcome");}}

訪問路徑:http://localhost:8080/項目名稱/welcome.html

實例二:使用Annotation實現控制器

web.xml內容同上

View Code <?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"><servlet><servlet-name>user</servlet-name> <!-- 此處用的是user,所以同目錄下的想xml文件名應該為user-servlet.xml --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>user</servlet-name><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>

user-servlet.xml中的內容

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><!--指定使用注解方式配置,配置自動掃描的包名,base-package指定自己應用中控制器所在的包目錄<context:component-scan/> 掃描指定的包中的類上的注解,常用的注解有: @Controller 聲明Action組件@Service 聲明Service組件@Service("myMovieLister") @Repository 聲明Dao組件@Component 泛指組件, 當不好歸類時. @RequestMapping("/menu") 請求映射 @Resource用于注入,( j2ee提供的 ) 默認按名稱裝配,@Resource(name="beanName") @Autowired用于注入,(srping提供的) 默認按類型裝配 @Transactional(rollbackFor={Exception.class}) 事務管理 @ResponseBody @Scope("prototype")設定bean的作用域--><context:component-scan base-package="com.springmvc.demo.controller" /><!-- 默認的注解映射的支持 --><mvc:annotation-driven /><!-- 配置視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 定義視圖前綴格式 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 定義視圖后綴格式 --><property name="suffix" value=".jsp" /></bean> </beans>

UserController控制器中的內容

package com.springmvc.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;/**** UserController.java ** @version : 1.1* * @author : 蘇若年 <a href="mailto:DennisIT@163.com">發送郵件</a>* * @since : 1.0 創建時間: 2013-4-13 上午12:58:05* * TODO : **/@Controller public class UserController {@RequestMapping(value={"/list"})public String listUser(){//value值不一定要跟方法名相同,value值是請求的url,讓請求與對應的方法綁定System.out.println("執行list操作");return "list"; //創建視圖頁面}@RequestMapping("/insert")public String insert(){//可以不寫value="/insert",上述表示方法也可以System.out.println("執行insert操作");return "insert"; //創建視圖頁面}@RequestMapping(value="delete")public String delete(){System.out.println("執行delete操作");return "delete";} }

這樣就可以實現一個控制器中執行相關的多個請求處理了.

在/WEB-INF/jsp/目錄下分別有方法返回的視圖頁面list.jsp,insert.jsp和delete.jsp頁面

針對list業務訪問方式舉例:http://localhost:8080/項目名稱/insert

針對delete業務訪問方式舉例:http://localhost:8080/項目名稱/delete


如何給控制器中傳入參數

只需要傳入的參數的實參參數名跟形成方法中的形參名一致即可

@RequestMapping(value="select")public String select(String username){System.out.println("執行查詢操作:要查詢的用戶名為:" + username);return "select";}

此時訪問的時候可以用如下方式傳入參數

http://localhost:8080/myproject/select?username=dennisit
這里username必須跟select方法的形參名一致才能保證數據傳遞成功,在后臺打印如下結果:

執行查詢操作:要查詢的用戶名為:dennisit

雖然這里有形參,但我們使用http://localhost:8080/myproject/select

訪問也是可以成功的,表示參數為null,可以通過后臺打印看出

執行查詢操作:要查詢的用戶名為:null

?

?

如何獲取值展示到視圖頁面

方案一(不推薦):?在參數中加入一個Map<String,?String>值對,可以按照session的思想理解,使用方式類似

@RequestMapping(value="select") public String select(String username,Map<String,Object> context){System.out.println("執行查詢操作:要查詢的用戶名為:" + username);context.put("username", username);return "select"; }

訪問路徑:http://localhost:8080/myproject/select?username=dennisit

WEB-INF/jsp/select.jsp中內容

<body>執行了查詢操作,查詢的用戶名為${ username }</body>

程序運行結果:執行了查詢操作,查詢的用戶名為dennisit?

方案二(推薦):在參數中使用Model對象

@RequestMapping(value="select") public String select(String username,Model model){System.out.println("執行查詢操作:要查詢的用戶名為:" + username);model.addAttribute("username", username);return "select"; }

訪問路徑跟執行結果同上,只是用的傳遞參數的對象由Map集合編程Model對象,用法沒有區別

[轉載自:[http://www.cnblogs.com/dennisit/archive/2013/04/13/3017910.html]

轉載于:https://www.cnblogs.com/warner/archive/2013/04/14/3021269.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的SpringMVC 实例应用 -- 不同方式控制器实现与参数传递的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。