锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一级Av无码毛片久久精品,亚洲一区二区三区日本久久九 ,久久久久亚洲AV无码专区网站http://www.tkk7.com/liuxiaosan/category/48256.html鎿嶈泲鐨勪漢鐢熷澶勫厖婊$編濡?/description>zh-cnTue, 13 Sep 2011 10:39:33 GMTTue, 13 Sep 2011 10:39:33 GMT60鍩轟簬娉ㄨВ鐨凷pringMVChttp://www.tkk7.com/liuxiaosan/articles/357092.htmlliucsliucsMon, 05 Sep 2011 08:42:00 GMThttp://www.tkk7.com/liuxiaosan/articles/357092.htmlhttp://www.tkk7.com/liuxiaosan/comments/357092.htmlhttp://www.tkk7.com/liuxiaosan/articles/357092.html#Feedback0http://www.tkk7.com/liuxiaosan/comments/commentRss/357092.htmlhttp://www.tkk7.com/liuxiaosan/services/trackbacks/357092.html涓銆佹榪?/h2>SpringMVC鍦?.5鐗堟湰鍚庢柊澧炰簡娉ㄨВ鍔熻兘錛?.5鐗堟湰浠ュ墠鐨勫熀鏈氳繃緇ф壙Controller浣撶郴鏉ュ紑鍙戜笟鍔℃帶鍒跺櫒錛?.5鐗堟湰鍚嶤ontroller浣撶郴涓?br />
BaseCommandController鍙?qiáng)鍏跺瓙绫籄bstractCommandController銆丄bstractFormController銆丄bstractWizardFormController銆?div>
SimpleFormController銆丆ancellableFormController絳夐兘宸茬粡琚爣紺轟負(fù)@Deprecated錛屽緩璁笉鍐嶄嬌鐢ㄣ?/div>

鐩告瘮浼犵粺鐨勭戶鎵緾ontroller浣撶郴涓煇浜涚被鐨勬柟寮忥紝SpringMVC鐨勬敞瑙e叿鏈変互涓嬩紭鐐癸細(xì)
1銆丆ontroller涓嶅啀闇瑕佺戶鎵挎煇涓壒瀹氱被錛屽彧鏄畝鍗曠殑POJO銆?br />2銆佽姹傛槧灝勭殑閰嶇疆闈炲父鏂逛究鐏墊椿銆?br />3銆佸弬鏁扮粦瀹氭満鍒墮潪甯告柟渚夸赴瀵屻?br />4銆佸彲浠ユ牴鎹笉鍚岀殑http鏂規(guī)硶鎴栬呭弬鏁幫紝緇嗙矑搴﹀鐞嗕笉鍚岀殑http璇鋒眰

浜屻佺ず渚?/h2>涓嬮潰閫氳繃瀵筍pringMVC娉ㄨВ鐨勮緇嗕粙緇嶆潵鐪嬩竴涓嬩笂榪頒紭鐐廣?br />
棣栧厛闇瑕佸湪搴旂敤鐨刣ispatcher-servlet.xml 鍚姩娉ㄨВ鏈哄埗
<context:annotation-config />
<!-- 璁劇疆娉ㄨВ椹卞姩 -->
<mvc:annotation-driven />
 
<!-- 璁劇疆鎵弿鐨勫寘 -->
<context:component-scan base-package="com.demo.web.controller" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

娉細(xì)铏界劧鎴戜滑鐨凜ontroller涓嶉渶瑕佸啀緇ф壙浠諱綍綾伙紝浣嗗嚭浜庤鑼冿紝鎴戜滑浠嶇劧鍛藉悕涓?**Controller.java錛屽茍緇熶竴鏀懼湪com.demo.web.controller鍖呬腑銆?br />

1銆丂Controller娉ㄨВ

綆鍗曠ず渚?br />
package com.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
class IndexController {
    @RequestMapping(
"/index")
    String index() {
        
return "index";
    }
}

鍦ㄤ竴涓狿OJO涓婇潰浣跨敤 @Controller 灝卞彲浠ユ爣娉ㄨPOJO鏄竴涓狢ontroller錛屽氨榪欎箞綆鍗曘?@Controller娉ㄨВ瀹氫箟鍦╫rg.springframework.steretype鍖呬腑銆?br />浣跨敤鏂瑰紡錛?@Controller 鎴栬?@Controller("indexController)銆?org.springframework.steretype鍖呬腑榪樺寘鍚?@Componenet @Service @Respository
涓変釜娉ㄨВ銆侤Component鏄氱敤鏍囨敞錛孈Controller鏍囨敞web鎺у埗鍣紝@Service鏍囨敞Servicec灞傜殑鏈嶅姟錛孈Respository鏍囨敞DAO灞傜殑鏁版嵁璁塊棶銆?br />

2銆佷嬌鐢ˊRequestMapping娉ㄨВ澶勭悊璇鋒眰鏄犲皠

    SpringMVC涓敞瑙e熀鏈兘鍖呭惈鍦?org.springframework.web.bind.annotation 鍖呬腑銆傚厛鐪嬩竴涓?span style="color: #000000;">@RequestMapping 娉ㄨВ鐨勬簮鐮併?br />
@Target( { ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {

    
/**
     * 鎸囧畾鏄犲皠鐨刄RL.鍙互鍦ㄧ被灞傛鍜屾柟娉曞眰嬈′嬌鐢ㄣ傛柟寮忓涓嬶細(xì)
     * @RequestMapping("/add_")鎴?nbsp;@RequestMapping(value = "/add")
     * 鏀寔Ant椋庢牸鐨刄RL鏄犲皠,濡?nbsp;@RequestMapping("/myPath/*.htm")
     * 鍦ㄧ被灞傛鎸囧畾浜嗘槧灝勫悗,鍙互鍦ㄦ柟娉曞眰嬈″啀鎸囧畾鐩稿璺緞
     
*/
    String[] value() 
default {};

    
/**
     * 鎸囧畾HttpRequest鐨勬柟娉? 濡傦細(xì)GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE.
     * 浣跨敤涓句緥錛?nbsp;@RequestMapping(value = "/add_activity", method = RequestMethod.GET)
     
*/
    RequestMethod[] method() 
default {};

    
/**
     * 鎸囧畾HttpRequest涓寘鍚殑鍙傛暟,浣跨敤鏂瑰紡濡備笅錛?br />     * @RequestMapping(value = "/something",params="myParam") 璇鋒眰鍖呭惈myParam鍙傛暟
     * @RequestMapping(value = "/something",params="myParam=myValue")璇鋒眰鍖呭惈myParam鍙傛暟錛屽茍涓旇鍙傛暟鍊間負(fù)myValue
     * @RequestMapping(value = "/something",params="!myParam") 璇鋒眰涓嶅寘鍚玬yParam鍙傛暟
     
*/
    String[] params() 
default {};

    
/**
     * 鎸囧畾HttpRequest涓寘鍚殑澶撮儴淇℃伅,浣跨敤鏂瑰紡濡備笅錛?br />     * @RequestMapping(value = "/something", headers="content-type")璇鋒眰鍖呭惈璇ュご閮?br />     * @RequestMapping(value = "/something", headers="content-type=text/*")璇鋒眰鍖呭惈鐗瑰畾鍊肩殑澶撮儴
     * @RequestMapping(value = "/something", headers="!content-type")璇鋒眰涓嶅寘鍚澶撮儴
     
*/
    String[] headers() 
default {};

}
娉細(xì)濡傛灉鍦ㄧ被灞傛鎸囧畾浜嗘槧灝勶紝鍒欐柟娉曞眰嬈′笂閮藉皢緇ф壙綾誨眰嬈$殑鏄犲皠

3銆佽幏鍙朒ttpRequest涓緱鍙傛暟

@RequestMapping("active")
public @ResponseBody boolean active(Long accountId) {
    return accountService.activeAccount(accountId);
}

@RequestMapping("active")
public @ResponseBody boolean active(Account account) {
    return accountService.activeAccount(accountId);
}
@RequestMapping(
"inactive")
public @ResponseBody boolean inactive(@RequestParam("accountId") Long accountId,
            @RequestHeader(
"User-Agent") String userAgent,
            @CookieValue(
"loginId") String loginId) {
    
return accountService.inactiveAccount(accountId);
}

@RequestMapping(value 
= "list/{pageNo}", method = RequestMethod.GET)
public String list(@PathVariable int pageNo) {
     
return "/account/list";
}

@RequestMapping(value = "add", method = RequestMethod.GET)
public String add(@RequestBody String body) {
     return "/account/add";
}


active鏂規(guī)硶鐨勫叆鍙?accountId錛屽鏋滆姹備腑鏈夊悕涓?accountId鐨勫弬鏁幫紝鍒欎細(xì)榪涜榛樿緇戝畾錛屼笉浠呭熀鏈被鍨嬶紝javabean鐨勫睘鎬т篃鍙互榛樿榪涜緇戝畾錛?br />濡傛灉闇瑕佹槑紜粦瀹氾紝浣跨敤@RequestParam銆?涓鑸緩璁繘琛屾槑紜寚瀹氥?br />
3.1 @RequestParam 緇戝畾httpRequest涓弬鏁幫紝@RequestParam("accountId") 瀹屾暣褰㈠紡涓?nbsp; @RequestParam(value="accountId",required=true錛宒efaultValue=null)
3.2 @RequestHeader 緇戝畾httpRequest澶撮儴淇℃伅錛孈RequestHeader("User-Agent") 瀹屾暣褰㈠紡涓?@RequestHeader(value="User-Agebt",required=true, defaultValue=null)
3.3 @CookieValue 緇戝畾涓涓狢ookie鍊鹼紝@CookieValue("loginId") 瀹屾暣褰㈠紡涓?@CookieValue(value="loginId",required=true,defaultValue=null)
3.4 @RequestBody 灝唄ttpRequest鐨刡ody緇戝畾鍒版柟娉曞弬鏁頒笂
3.5 @ModelAttribute 鏈変袱縐嶄嬌鐢ㄦ柟寮? 1)鍦ㄦ柟娉曠駭鍒紝鎸囧畾鏂規(guī)硶鐨勮繑鍥炲肩粦瀹氬埌model涓紱 2錛夋柟娉曞弬鏁扮駭鍒紝鎸囧畾model涓殑鍊肩粦瀹氬埌鏂規(guī)硶鐨勫叆鍙備笂 紺轟緥濡備笅錛?br />
 @ModelAttribute("countryList")
    
public List<String> getCountries() {
        
return new ArrayList<String>();
    }

@RequestMapping(value 
= "search", method = RequestMethod.POST)
    
public String searchAccount(@ModelAttribute("accountId") Long accountId) {
        
return "/search";
    }

4銆佷嬌鐢ˊResponseBody 鐢熸垚response

    閫傜敤浜巜ebservice鐨勬暟鎹氦鎹紝鎴朼jax寮傛璇鋒眰錛宼ext銆乯son鎴栬厁ml鏍煎紡鐨勬暟鎹氦鎹€?br />    渚嬪璁塊棶錛?http://localhost:8080/accounts/info.htm
 

@RequestMapping(value = "info")
public @ResponseBody Account getAccount() {
        Account a 
= new Account();
        a.setId(
123L);
        a.setName(
"zhangsan");
        
return a;
 }

榪斿洖鏁版嵁濡備笅錛?
{"name":"zhangsan","id":123}
浠庝笂闈緥瀛愬彲浠ョ湅鍑猴紝浣跨敤@ResponseBody鍚庯紝榪斿洖鐨刯avabean榛樿琚簭鍒楀寲鎴恓son鏍煎紡鐨勬暟鎹茍琚啓鍏ュ埌response body涓?br />
@Request 鍜?@ReponseBody 浣跨敤浜咹ttpMessageConverter鏈哄埗銆備笅闈㈡槸HttpMessageConverter鐨勭戶鎵夸綋緋匯?br />

甯哥敤鐨勬湁濡備笅鍑犱釜錛?br />
StringHttpMessageConverter ---瀛楃涓?br />
MappingJacksonHttpMessageConverter ----json
ByteArrayHttpMessageConverter ----瀛楄妭鏁扮粍
MarshallingHttpMessageConverter -----xml

5銆佷嬌鐢ㄦā鏉挎妧鏈敓鎴恟esponse

    閫傜敤浜庝竴鑸〉闈㈣姹傘傚彲浠ヤ嬌鐢╲elocity freemarker絳夋ā鏉挎妧鏈紝鍦╠ispatcher-servlet.xml涓渶瑕佽緗畍iewResolver銆?br />   
@RequestMapping("/index")
public String index(ModelMap modelMap) {
        modelMap.put(
"name""liucs");
        
return "index";
}

@RequestMapping(
"/index")
public String index2(Model model) {
        model.addAttribute(
"name","liucs");
        
return "index";
}

@RequestMapping("/index")
public ModelAndView index3() throws Exception {
      ModelAndView mav = new ModelAndView("index");
      mav.addObject("name", "liucs");
      return mav;
}

濡備笂闈唬鐮乮ndex1鍜宨ndex2鎵紺猴紝涓嶄嬌鐢ˊResponseBody娉ㄨВ銆?榪斿洖涓涓猄tring綾誨瀷錛岃繖涓猄tring鏄痸iewname, 濡傛灉鏄噸瀹氬悜錛宺eturn "redirect:/index.htm".
鍏ュ弬鍙互鍖呭惈ModelMap鎴栬匨odel錛屽叾瀹炶繖涓よ呮槸涓涓笢瑗匡紝浣滅敤涓鏍楓備篃鍙互閲囩敤index3寮忕殑浼犵粺鍐欐硶錛岃繑鍥炰竴涓狹odelAndView瀵硅薄銆?br />

6銆佹暟鎹獙璇?/span>

@InitBinder鏍囨敞
@InitBinder
    
public void myInitBinder(WebDataBinder binder){
      binder.setDisallowedFields(
new String[]{"id"});
    }
閫氳繃鍦ㄦ柟娉曚腑澹版槑涓涓狟indingResult鍙傛暟鏉ュ惎鍔ㄧ粦瀹氬拰楠岃瘉
@RequestMapping("update")
    
public void update(@ModelAttribute("account") Account account,BindingResult bindResult) {
        
if(bindResult.hasErrors()){
            
//……
        }
    }
闇瑕佹敞鎰忎互涓嬮檺鍒訛細(xì)
1銆丅indingResult鍙傛暟蹇呴』璺熷湪涓涓狫avaBean鍙傛暟鍚庨潰
2銆侀敊璇細(xì)琚嚜鍔ㄧ殑緇戝畾鍒癿odel涓紝渚夸簬娓叉煋妯℃澘鏃朵嬌鐢?br />3銆佷笉鏀寔@RequestBody絳夌被鍨嬬殑鍙傛暟褰㈠紡

7銆佸紓甯稿鐞?/span>

@ExceptionHandler




liucs 2011-09-05 16:42 鍙戣〃璇勮
]]>
主站蜘蛛池模板: www国产亚洲精品久久久日本| 久久亚洲一区二区| 亚洲精品第一综合99久久| 亚洲Av无码一区二区二三区| 99亚洲精品卡2卡三卡4卡2卡| a级男女仿爱免费视频| 中文字幕不卡亚洲| 亚洲乱码在线观看| 最近2019中文字幕mv免费看| 亚洲人成色7777在线观看| 亚洲免费福利在线视频| 成人a视频片在线观看免费| 在线精品亚洲一区二区| 国产精品99爱免费视频| 成**人免费一级毛片| 亚洲国产精品99久久久久久| 久久久国产精品无码免费专区| 四虎AV永久在线精品免费观看| 成人婷婷网色偷偷亚洲男人的天堂| 免费在线观看一级毛片| gogo免费在线观看| 久久香蕉国产线看观看亚洲片| 亚洲美女免费视频| 亚洲AV无码1区2区久久| **一级毛片免费完整视| 亚洲中文字幕久久精品无码A| 国产不卡免费视频| 国内精品99亚洲免费高清| 中文字幕亚洲精品资源网| 成在人线AV无码免费| 一级毛片免费播放试看60分钟| 免费乱码中文字幕网站| 中国性猛交xxxxx免费看| 亚洲黄色免费网站| 国产无遮挡裸体免费视频| 亚洲中文无码mv| 亚洲精品偷拍视频免费观看| 久久久久亚洲AV无码去区首| 亚洲日产韩国一二三四区| 亚洲第一网站免费视频| 免费国产污网站在线观看不要卡 |