原文地址: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. 数据库中清空数据,保留表结构的sql语句

    方法一:Delete Form 表名 方法二:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 D ...

  2. Java 虚拟机 最易理解的 全面解析

    先上一个最容易理解的类实例化的内存模型案例截图: 转载自:https://www.zybuluo.com/Yano/note/321063 周志明著的<深入理解 Java 虚拟机>的干货~ ...

  3. _itemmod_enchant_groups

    随机附魔组 附魔组 `groupId` 分组编号,同一groupId的附魔效果被随机抽取 `enchantId` 附魔Id 对应SpellItemEnchantment.dbc `chance` 被抽 ...

  4. 蚂蚁金服 Service Mesh 渐进式迁移方案|Service Mesh Meetup 实录

    小蚂蚁说: 本文是基于在 Service Mesher Meetup 上海站的主题分享<蚂蚁金服 Service Mesh 渐进式迁移方案>内容整理,完整的分享 PPT 获取方式见文章底部 ...

  5. bzoj 4034: [HAOI2015]树上操作 树链剖分+线段树

    4034: [HAOI2015]树上操作 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4352  Solved: 1387[Submit][Stat ...

  6. php格式化数字输出number_format

    <?php $num = 4999.944444; $formattedNum = number_format($num).PHP_EOL; echo $formattedNum; $forma ...

  7. Node.js 常用命令

    1. 查看node版本 node --version 2. 查看npm 版本,检查npm 是否正确安装. npm -v 3. 安装cnpm (国内淘宝镜像源),主要用于某些包或命令程序下载不下来的情况 ...

  8. Altium Designer PCB的时候 高亮显示引脚连线

    按住Ctrl ,左击连线,就可以高亮显示两个连接的引脚.

  9. Golang sync

    Go1.9.2 sync库里包含下面几类:Mutex/RWMutex/Cond/WaitGroup/Once/Map/Pool 1.Mutex:互斥锁,等同于linux下的pthread_mutex_ ...

  10. Eclipse项目左侧调整显示或者不显示路径

    View Menu(倒三角)-->Package Presentation-->选择Flat或Hierarchical