SpringMVC中不通過(guò)方法參數(shù)傳值獲取HttpSession實(shí)例,及將對(duì)象置入Model中的方法

背景:因?yàn)槭褂肧wagger測(cè)試需要手動(dòng)指定傳入的參數(shù),但是session和model這種東西基本不可能靠手敲來(lái)實(shí)現(xiàn),所以需要把他們從方法的參量表中移走,令辟一條路實(shí)現(xiàn)他們。

在控制器中使用構(gòu)造器傳入HttpSession對(duì)象:
private final HttpSession session;

public XXXController(HttpSession session) {
    this.session = session;
}

之后就可以在這個(gè)控制器中的任意類訪問(wèn)session了。

不用Spring MVC的方法傳入?yún)?shù)(..., Model model)將某個(gè)對(duì)象放入model中的方法

用注解"@ModelAttribute()",這里直接放代碼,自己看吧。

package controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value = "/user")
@Api("訪問(wèn)用戶的API")
public class UserController {

    /**
     * 訪問(wèn){ServerRoot}/user/{username},
     * 轉(zhuǎn)發(fā)至用戶詳情頁(yè),
     * 詳情頁(yè)用model傳入的用戶名在GET {ServerRoot}/users/{username},
     * 異步加載用戶實(shí)體對(duì)應(yīng)JSON對(duì)應(yīng)對(duì)象,
     * 再由Vue.js繪制至DOM組件
     * @param username 地址傳入的請(qǐng)求用戶名
     * @return 需要映射的頁(yè)面地址到視圖解析器
     */
    @GetMapping(value = "/{username}")
    @ApiOperation(value = "獲取用戶名為{username}的詳細(xì)信息")
    @ApiImplicitParam(name = "username", dataType = "String", paramType = "path")
    public String userInfo(@PathVariable(value = "username") @ModelAttribute(value = "username") String username) {
        // 怎么把username傳到info頁(yè),info頁(yè)再通過(guò)它使用Ajax從UsersController::getUserInfo加載用戶信息,model?
        return "user/info";
    }

}

這里的效果就是把地址傳過(guò)來(lái)的變量username放入model。
注:這個(gè)注解有別的用法,但是不再推薦使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容