成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

springmvc中controller內(nèi)方法跳轉(zhuǎn)forward?redirect?

antz / 1779人閱讀

摘要:使用的的時(shí)候,碰到內(nèi)方法的跳轉(zhuǎn)的問(wèn)題,記錄下問(wèn)題以及自己測(cè)試的過(guò)程。第三種選擇使用的的方法來(lái)設(shè)置值,原理是在跳轉(zhuǎn)前將值放入中,跳轉(zhuǎn)之后就將值清除掉。

使用springmvc的controller的時(shí)候,碰到controller內(nèi)方法的跳轉(zhuǎn)的問(wèn)題,記錄下問(wèn)題以及自己測(cè)試的過(guò)程。

場(chǎng)景:

業(yè)務(wù)執(zhí)行更新操作之后返回列表頁(yè)面,列表頁(yè)面需默認(rèn)展示查詢的列表數(shù)據(jù),涉及到兩個(gè)controller的跳轉(zhuǎn)。

問(wèn)題

是使用forward還是redirect跳轉(zhuǎn)

解決問(wèn)題
其實(shí)使用forward或者redirect都能達(dá)到目的,但是有些問(wèn)題在下面說(shuō)明。
1、使用forward
a、例如:return "forward:/rest/queryData",實(shí)際的效果是在瀏覽器中的url地址還是原地址,存在重復(fù)提交的問(wèn)題,所以forward就不推薦使用了。
b、如果是需要攜帶參數(shù),直接拼接傳遞的參數(shù),例如:return "forward:/rest/queryShopAlisName?phone=xxxxxxx"; 在跳轉(zhuǎn)的controller中使用參數(shù)【@RequestParam("phone") String phone】獲得傳遞的參數(shù)值,顯然這樣的方式也是不推薦的。

2、使用redirect
在controller方法的參數(shù)中使用RedirectAttributes來(lái)
a、不帶參數(shù):
直接使用 return "redirect:/rest/queryShopAlisName";瀏覽器的地址變成跳轉(zhuǎn)的新地址,避免了重復(fù)提交的問(wèn)題。
b、帶參數(shù)的時(shí)候:

第一種選擇:直接在url后面拼接參數(shù),使用@RequestParam來(lái)取值,不推薦使用

第二種選擇:在controller方法的參數(shù)中使用RedirectAttributes來(lái)傳遞參數(shù)

    @RequestMapping(value = "/checkMember")
    public String checkMember(HttpServletRequest request, RedirectAttributes attr) {
            Member member = null;
        try {
            String phone = request.getParameter("phone");
            ***attr.addAttribute("phone", "xxxx");***
            member = cashierService.checkIsMember(phone);
        } catch (Exception e) {
            logger.error("query member is error happen : " + e);
        }
        return "redirect:/rest/queryShopAlisName";
    }

使用attr.addAttribute來(lái)設(shè)置值,然后在跳轉(zhuǎn)的controller中同樣使用@RequestParam來(lái)取值,在瀏覽器中同樣是拼接參數(shù)的形式,例如:http://localhost:8080/xxxx/xx...,同樣不建議這么使用。

第三種選擇:使用RedirectAttributes的addFlashAttribute的方法來(lái)設(shè)置值,原理是在跳轉(zhuǎn)前將值放入session中,跳轉(zhuǎn)之后就將值清除掉。瀏覽器的地址不顯示參數(shù)的值,推薦使用這種方法來(lái)傳值。

attr.addFlashAttribute("phone", "xxxxxxx");

在跳轉(zhuǎn)的controller的參數(shù)中增加@ModelAttribute來(lái)取得參數(shù)值

@RequestMapping(value = "/queryShopAlisName")
    public String queryShopAlisName(@ModelAttribute("phone")String  phone) {
        ......
        return "";
    }

第一次寫博客來(lái)記錄,還請(qǐng)看官多多包涵咯。就這樣結(jié)束吧

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67789.html

相關(guān)文章

  • SpringMVC之源碼分析--ViewResolver(五)

    摘要:此解析器與差不多,更改下配置文件中的類全路徑即可??偨Y(jié)本章介紹了以及三個(gè)視圖解析器。這部分內(nèi)容有點(diǎn)兒多,我會(huì)盡快結(jié)束。 概述 通過(guò)上幾篇的學(xué)習(xí),我們分析了并試驗(yàn)了ViewResolverComposite、BeanNameViewResolver和ContentNegotiatingViewResolver,這三個(gè)類都直接實(shí)現(xiàn)ViewResolver接口。Spring MVC提供了很多...

    klinson 評(píng)論0 收藏0
  • SpringMVC【開(kāi)發(fā)Controller】詳解

    摘要:是使用攔截器來(lái)自動(dòng)幫我們完成中文亂碼的問(wèn)題的。這是我的首頁(yè)當(dāng)然了,基于注解和基于來(lái)開(kāi)發(fā),都是通過(guò)映射器適配器和視圖解析器的。能夠控制請(qǐng)求路徑和請(qǐng)求方式一個(gè)控制器寫多個(gè)業(yè)務(wù)方法到目前為止,我們都是一個(gè)控制器寫一個(gè)業(yè)務(wù)方法,這肯定是不合理的。 前言 本文主要是講解在Controller中的開(kāi)發(fā),主要的知識(shí)點(diǎn)有如下: 編碼過(guò)濾器 使用注解開(kāi)發(fā) 注解@RequestMapping詳解 業(yè)務(wù)方...

    Pines_Cheng 評(píng)論0 收藏0
  • SpringMVC學(xué)習(xí)筆記

    摘要:是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。協(xié)議,是一個(gè)無(wú)狀態(tài)協(xié)議,即所有的狀態(tài)都保存在服務(wù)器端。而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是表現(xiàn)層狀態(tài)轉(zhuǎn)化。具體說(shuō),就是協(xié)議里面,四個(gè)表示操作方式的動(dòng)詞。 一、SpringMVC概述 Spring為展現(xiàn)層提供的基于MVC設(shè)計(jì)理念的優(yōu)秀的Web框架,是目前最主流的MVC框架之一 Spring3.0之后全面超越Struts2,成為最優(yōu)秀的MVC框架 S...

    roundstones 評(píng)論0 收藏0
  • SpringMVC【參數(shù)綁定、數(shù)據(jù)回顯、文件上傳】

    摘要:那我們就不用在每一個(gè)方法通過(guò)將數(shù)據(jù)傳到頁(yè)面。還能夠配置該參數(shù)是否是必須的。方法的返回值有種重定向轉(zhuǎn)發(fā)內(nèi)部就是將數(shù)據(jù)綁定到域?qū)ο笾械?。注解能夠?qū)?shù)據(jù)綁定到中也就是中,如果經(jīng)常需要綁定到中的數(shù)據(jù),抽取成方法來(lái)使用這個(gè)注解還是不錯(cuò)的。 前言 本文主要講解的知識(shí)點(diǎn)如下: 參數(shù)綁定 數(shù)據(jù)回顯 文件上傳 參數(shù)綁定 我們?cè)贑ontroller使用方法參數(shù)接收值,就是把web端的值給接收到Cont...

    Flink_China 評(píng)論0 收藏0
  • SpringMVC【校驗(yàn)器、統(tǒng)一處理異常、RESTful、攔截器】

    摘要:只要有一個(gè)攔截器不放行,不能執(zhí)行完成號(hào)不放行和號(hào)不放行測(cè)試結(jié)果總結(jié)只有前邊的攔截器方法放行,下邊的攔截器的才執(zhí)行。至于他們的攔截器鏈的調(diào)用順序,和的是沒(méi)有差別的。 前言 本博文主要講解的知識(shí)點(diǎn)如下: 校驗(yàn)器 統(tǒng)一處理異常 RESTful 攔截器 Validation 在我們的Struts2中,我們是繼承ActionSupport來(lái)實(shí)現(xiàn)校驗(yàn)的...它有兩種方式來(lái)實(shí)現(xiàn)校驗(yàn)的功能 手寫...

    marser 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<