原文地址: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

spring boot 之如何在两个页面之间传递值(转)的更多相关文章

  1. ASP.NET页面之间传递值的几种方式(转载)

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  2. ASP中页面之间传递值的几种方式

    ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryS ...

  3. ASP.NET页面之间传递值的几种方式

    目录 QueryString Session Cookie Application 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. ...

  4. [转]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  5. [转载]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  6. ASP.NET 页面之间传递值的几种方式

    1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...

  7. ASP.NET 弹出对话框和页面之间传递值的经验总结

    今天碰到一个弹出对话框(PopUp dialog)的问题, 因该是个傻瓜问题, 但是还是让我研究了半天, 总结了一些前人经验, 拿出来跟大家分享一下! 在ASP.Net中页面之间的传值方法有很多,但是 ...

  8. 微信小程序之页面之间传递值

    页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...

  9. 微信小程序——页面之间传递值

    小程序页面传值的方式: 1.正向传值:上一页面 -->  下一页面 url传值 本地储存 全局的app对象 2.反向传值:下一页面 -->  上一页面 本地储存 全局的app对象 先说一下 ...

随机推荐

  1. center os

    CentOS.Ubuntu.Debian三个linux比较异同 Center OS 7 安装 $$ center os 安装mysql5.6 Linux学习之Center os网络配置 Cent Os ...

  2. commons-beanutils使用介绍

    commons-beanutils是Apache开源组织提供的用于操作JAVA BEAN的工具包.使用commons-beanutils,我们可以很方便的对bean对象的属性进行操作.今天为大家介绍一 ...

  3. Redis 个人理解总结

    一.什么是Redis ? Redis(remote dictionnary server)是一个key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可 ...

  4. JAVA9新特性——JShell使用笔记

    前言:JShell是java 9的新特性之一,由于在之前学校java8的lambda表达式的时候,就希望有这么一个可以交互的界面来快速响应编写的代码.刚好java9出来了,就对它把玩起来了... 内容 ...

  5. python中常用的模块一

    一,常用的模块 模块就是我们将装有特定功能的代码进行归类,从代码编写的单位来看我们的程序,从小到大的顺序: 一条代码<语句块,<代码块(函数,类)<模块我们所写的所有py文件都是模块 ...

  6. Python3 函数注解

    Python3提供一种语法,用于为函数声明中的参数和返回值附加元数据.下面的例子是注解后的版本,特点在第一行: 1 def clip(text : str, max_len : 'int > 0 ...

  7. java 四种线程池的异同

    四种线程池的区别仅仅在于executors让threadpoolexecutor的构造器的参数不同,即核心线程池数,最大线程池数等不同.但是其他的,例如终止线程池等都是一样的

  8. [原][osg]osg文件与osgb文件的区别

    osgb是二进制文件 osg是文本文件 osgb可以通过osgconv.exe转换成osg文件 osgb可以包含纹理文件(就是贴图) osg只能连接外部纹理文件(是的,你看到的cow.osg都是用的外 ...

  9. 《剑指offer》第六十二题(圆圈中最后剩下的数字)

    // 面试题62:圆圈中最后剩下的数字 // 题目:0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里 // 删除第m个数字.求出这个圆圈里剩下的最后一个数字. #inclu ...

  10. ICO分享