首頁 >Java >java教程 >java ssm框架的controller怎麼實作傳送參數

java ssm框架的controller怎麼實作傳送參數

PHPz
PHPz轉載
2023-05-15 19:22:041179瀏覽

ssm的controller向頁面傳遞參數

使用Map 來傳遞參數

#在控制器的方法中加入一個Map類型參數A。給參數A的put方法put了鍵值對B,鍵值對B在頁面中就可以獲取到了

#1.java 後台程式碼的編寫,put了operation和application鍵值對

@RequestMapping("/edit_form")
    public String editApplicationFormPage(Map<String, Object> map,
            HttpServletRequest request, String applicationId) {
        map.put("operation", "edit");
        Application application = applicationService
                .getApplicationById(applicationId);
        if(application.getSysBigIcon()==null||application.getSysBigIcon().equals("")){
            application.setSysBigIcon("/www/images/default.png");
        }
        if(application.getSysIcon()==null||application.getSysIcon().equals("")){
            application.setSysIcon("/www/images/default.png");
        }
        if (application != null) {
            map.put("application", application);
        }
        return "/frame/system/application/application_form";
    }

2.頁面使用後台傳遞過來的鍵值對

使用的方法是鍵值對要用${}包起來。例如:${operation}和${application.orgId},${operation}是引用後台map put的operation鍵值對,${application.orgId}是引用後台map put的application實體的一個物件。

<script type="text/javascript">
    window.WWWROOT = "${ctx}";
    window.DefaultOrgId  = "<%=user.getDefaultOrgId()%>";
    window.Operation = "${operation}";
    window.OrgId = "${application.orgId}";
    window.TaskAppId = "${application.taskAppId}";
    window.MenuType = "${application.menuType}";
</script>
            <title>${operation eq &#39;add&#39;?&#39;添加&#39;:(operation eq
                &#39;edit&#39;?&#39;编辑&#39;:&#39;查看&#39;)}应用系统</title>

使用PrintWriter來傳遞參數

給PrintWriter寫一些內容。就把這些內容回來頁面了。

1.後台程式碼的寫

在控制器的方法中加入一個PrintWrite類型參數writer,使用writer.write()方法寫入內容。頁面就可以回傳這內容了。程式碼如下:

@RequestMapping("/add")
    public void  add(HttpServletRequest request, HttpServletResponse response,MenuRight menuRight, PrintWriter writer)
             {
        try{
            Boolean result =menuRightService.addMenuRight(menuRight);
            writer.write("{\"success\":true}");
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    writer.write("{\"success\":false}");
                }
 
    }

2.頁面的程式碼寫 

  • success : function(result)中的result就是後台傳回的writer.write()中的內容

$.ajax({
        type : &#39;POST&#39;,
        url : WWWROOT + "/menuRight/add",
        data : dat,
        success : function(result) {
            if ($.parseJSON(result).success == true) {
                $(stId).attr("checked", true);
            } else {
                alert("添加授权失败");
                $(stId).attr("checked", false);
            }
        }
    });

ssm框架取得頁面傳遞的參數

透過@RequestParam

#接收名字為age的參數,且可以為空

@RequestParam(value = "age",required = false)

java ssm框架的controller怎麼實作傳送參數

透過@PathVariable

java ssm框架的controller怎麼實作傳送參數

透過@RequestBody –不適用於Get請求

java ssm框架的controller怎麼實作傳送參數

  • 1.@RequestBody 接收的是一個請求體, @RequestBody只能存在一個,接收的是所有的請求參數--一次接收完

  • 2.如果傳物件或陣列必須先轉為Json格式\或是純字串

  • 3.@RequestBody 不適合用於Get請求

接收日期類型: @DateTimeFormat\@JsonFormat

  • @DateTimeFormat使用情境直接傳遞日期格式時,直接用該註解接收;

  • @JsonFormat使用場景:頁面傳遞Json格式的日期格式時,使用該註解接收;  特別注意:使用不同的Json套件該註解名可能不同

使用方法:

java ssm框架的controller怎麼實作傳送參數

以上是java ssm框架的controller怎麼實作傳送參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除