首页 >Java >java教程 >java ssm框架的controller怎么实现向页面传递参数

java ssm框架的controller怎么实现向页面传递参数

PHPz
PHPz转载
2023-05-15 19:22:041178浏览

ssm的controller向页面传递参数

使用Map994a833a6ffa28d85b72cb15422c29d6 来传递参数

在控制器的方法中添加一个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删除