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
spring boot 之如何在两个页面之间传递值(转)的更多相关文章
- ASP.NET页面之间传递值的几种方式(转载)
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...
- ASP中页面之间传递值的几种方式
ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryS ...
- ASP.NET页面之间传递值的几种方式
目录 QueryString Session Cookie Application 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. ...
- [转]ASP.NET页面之间传递值的几种方式
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...
- [转载]ASP.NET页面之间传递值的几种方式
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...
- ASP.NET 页面之间传递值的几种方式
1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer4.Applicatio ...
- ASP.NET 弹出对话框和页面之间传递值的经验总结
今天碰到一个弹出对话框(PopUp dialog)的问题, 因该是个傻瓜问题, 但是还是让我研究了半天, 总结了一些前人经验, 拿出来跟大家分享一下! 在ASP.Net中页面之间的传值方法有很多,但是 ...
- 微信小程序之页面之间传递值
页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...
- 微信小程序——页面之间传递值
小程序页面传值的方式: 1.正向传值:上一页面 --> 下一页面 url传值 本地储存 全局的app对象 2.反向传值:下一页面 --> 上一页面 本地储存 全局的app对象 先说一下 ...
随机推荐
- Linux安装svn客户端
Red Hat Linux 1.安装$ yum install subversion 2.常见问题1.执行svn报错:cannot set LC_CTYPE localevi /etc/profile ...
- MySQL数据库自动备份
1.vi /home/wangcn/auto_log.sh#!/bin/bash #Shell Command For Backup MySQL Database Everyday Automatic ...
- eclipse maven maven-compiler-plugin 报错 完全解决
报错如下: Maven install失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:comp ...
- 分组查询以及having使用
Group by 注意事项:对查询的列有限制,除了聚合函数外,就必须是分组的项 order by总是放在最后 代码示例: select Gender as 性别 ,count (Gender) a ...
- 插件写法之脚本运行环境,mac和window检测
(function(root, factroy){ /* * 在这里进行对脚本运行环境的检测判断 * 浏览器中 有window对象 * node.js服务器端 有Global对象 * * IE11 ...
- web 前端知识体系 网站资源分析
一.比较全面的思维导图 二.相关资源 1. 布局框架:Bootstrap: http://getbootstrap.com/Foundation: http://foundation.zurb.com ...
- POI导出时写一份到ftp服务器,一份下载给客户端
导语: 昨天接到项目经理这么一个需求,让我在POI导出Excel的时候写一份到我之前搭建的ftp服务器上.所以就有了这篇博客首先我们来分析下之前的业务逻辑:我们创建并构造了一个workbook,然后构 ...
- SPOJ 刷题记录
按点赞数降序 297 二分 #include<bits/stdc++.h> using namespace std; #define fi first #define se second ...
- ubuntu下安装anaconda
1. 到官网http://continuum.io/downloads下载anaconda. 选择linux64-bit-python2.7 2. 安装anaconda,在终端输入:cd ~/Do ...
- tcpdump使用方法总结
举例: 1.针对指定网卡eth0抓包 tcpdump -i eth0 2.过滤主机 tcpdump -i eth0 host 192.168.1.1 tcpdump -i eth0 src host ...