zoukankan      html  css  js  c++  java
  • spring boot 之如何在两个页面之间传递值(转)

    原文地址:spring boot 之如何在两个页面之间传递值

    问题:页面之间的跳转,通常带有值的传输,但是,在现在比较流行的SPRING MVC WEB 
    开发模型中,设计机制导致页面之间的直接接跳转和传值不被支持(网上看到的,没有深究), 
    但是如果我么要实现两个页面之间传值怎么实现呢?

    值的传递: 
    流程 
    将值name从A.html传给controller,让后读取这个值,增加到model里,然后,B.html从model中读取处理

    A. html 如何将name值传过去 
    方法一:使用传统的方法,如下,

    <a href=”/controller_link?staff_name=?>

    数据不重要并且数据不多时候,可以用,代码如下:

    '</td><td><a href ="/attendance/calendar?staff_name='+ data.content[key].name +'"> ' + typeStyle(examine) + " </a> </td></tr>"

    上面的格式不需要看,只是这是我的代码,这是一个例子,在这里使用javascript来构建table,如果需要看,则结合上下文来看,详细请看我的博文:JAVASCRIPT构建TABLE。

    方法二:使用ajax,使用点击动作,点击后,调用ajax 函数,将函数传给controller,ajax使用普通的发送和接收数据格式:代码如下

     var staff_name2=$("#staff_name2").val();
          alert(staff_name2);
          $.ajax({
                type : 'get',
                url : "./getdatasrcInser",
                async : true,
                dataType : 'json',
                error: "重新请求",
                data:{
                    'staff_name_new':staff_name2
                },
          Success:function(){},      
          Error:function(){}
    });

    url 是controller 中的一个Requestmapping链接。 
    下面是controller中代码,将获得到的参数,添加到controller要转到的B.html。

    @RequestMapping("/calendar")
    public String Calendar( Model model,@RequestParam(value = "staff_name", required = false, defaultValue = "") String staff_name) {
    
    
            /*List<CalendarTa> lists=calendarTaRepository.findAllByName("aa");
            model.addAttribute("lists", lists);*/
            model.addAttribute("staff_name", staff_name);
            return "B.html"
        }   

    @直到staff_name代码部分表示获取传来的参数的部分,value表示传来的id,其他的一样就行(什么意思,现在也不知道),String staff_name 表示在这里被定义出来的形参。值和staff_name的值一样。

    那么我们如何在B.html中获取staff_name属性的值呢? 
    两个方法: 
    方法一(最通用的方法) 
    思路:在HTML body中定义一个属性,或者标签什么都可以,给定id,或者属性什么都可以,按时要JAVASCRIPT 可以找的到。代码如下:

    <input type="hidden" th:value="${staff_name}" id="staff_name2"/>

    ${staff_name} javascript,读取staff_name的值,然后在javascript中读取出id为staff_name2的值,其代码如下:

    var staff_name2=$("#staff_name2").val();

    剩下就可以使用staff_name了。 
    方法二:涉及到Thymeleaf 的使用,上面的th:value 也使用到了thymeleaf,普通的只要value就可以了。 
    代码如下,不要设计属性,可以直接引用下面的代码就可以了

    <script th:inline="javascript">
       /*<![CDATA[*/
       var staff_name = /*[[${staff_name}]]*/;
       /*]]>*/
       </script>

    只需改变staff_name到你定义的属性名称就可以,当然前提是得知道如何使用thymele

  • 相关阅读:
    Linux三剑客之sed深度实践讲解(上)
    Linux第三阶段题型测试
    Linux正则表达式题型
    linux文本处理三剑客命令及用法
    SSH服务协议、部署ssh、scp、sftp服务
    NFS客户端挂载及永久生效
    SSH实现无密码登录
    NFS深度解析及搭建同步NFS服务
    NFS文件系统及搭建NFS共享服务
    Linux系统磁盘管理
  • 原文地址:https://www.cnblogs.com/huanghongbo/p/8935698.html
Copyright © 2011-2022 走看看