js怎样获得后台Model中的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js怎样获得后台Model中的值相关的知识,希望对你有一定的参考价值。
@RequestMapping(value="/objectMethod2Send",method=RequestMethod.GET)
public String objectMethod2Send(Person person,Model model)
System.out.println("**************************");
System.out.println("举例2");
System.out.println("后台已接收前端Person对象"+person);
User user=new User();
user.setId(3);
user.setName("张三");
user.setCompany("Adobe");
model.addAttribute("user",user);
System.out.println("**************************");
return "object/objectMethod2Receive";
前端js怎么获得User对象?谢谢!
除了el表达式方法,还有其他方法吗?比如:
<script type="text/javascript">
$(function()
var user='<%=request.getAttribute("user")%>'; //这种方法取出来是user是String类型,我要的是Object类型,怎么做呢?谢谢!
)
</script>
获取id $user.id
获取name $user.name
获取company $user.company
JS中直接从java后台获得对象的值(数组的值)
这里举得例子是:JS直接从后台Contorller中(SpringMVC中的model中)获得数值的值
Contorller 此处将 talentIntegralRecordsDay talentIntegralRecordsIntegral 两个数组用JSON.toJSONString()封装。
@SuppressWarnings("deprecation")
@RequestMapping("/integralParadise") public ModelAndView Welcome(HttpServletRequest request)
Users user = userService.currentUser(request);
user.getTalentUser().getIntegral();
System.out.println(user.getTime().getDate());
TalentIntegralRecord[] signInTalentIntegralRecords= wechatIntegralService.getUserSignInTalentIntegralRecords(user.getId()); int size = signInTalentIntegralRecords.length; int[] talentIntegralRecordsDay = new int[size];
Long[] talentIntegralRecordsIntegral = new Long[size]; for(int i=0;i<signInTalentIntegralRecords.length;i++)
talentIntegralRecordsDay[i]=signInTalentIntegralRecords[i].getOperatorTime().getDate();
talentIntegralRecordsIntegral[i]=signInTalentIntegralRecords[i].getIntegral();
Map<String,Object> map = new HashMap<String,Object>();
map.put("talentIntegralRecordsDay", JSON.toJSONString(talentIntegralRecordsDay));
map.put("talentIntegralRecordsIntegral", JSON.toJSONString(talentIntegralRecordsIntegral)); return new ModelAndView("wechat/integralParadise/rili",map);
前台JSP 因为用到两个数组数据的JS代码为页面引用的JS代码所以要在页面中先声明获得后台两个数组(这段JS代码应在引用的JS文件前面)
<script type="text/javascript">
$(document).ready(function()
window.talentIntegralRecordsDay = $talentIntegralRecordsDay;
window.talentIntegralRecordsIntegral = $talentIntegralRecordsIntegral;
);</script>
引用的JS文件 开始就获得了两个数组的值
$(function() var signFun = function()
var dateArray = window.talentIntegralRecordsDay;// 假设已经签到的
var talentIntegralRecordsIntegral = window.talentIntegralRecordsIntegral; var $dateBox = $("#js-qiandao-list"),
$currentDate = $(".current-date"),
$qiandaoBnt = $("#js-just-qiandao"),
_html = '',
_handle = true,
myDate = new Date();
$currentDate.text(myDate.getFullYear() + '年' + parseInt(myDate.getMonth() + 1) + '月' + myDate.getDate() + '日'); var monthFirst = new Date(myDate.getFullYear(), parseInt(myDate.getMonth()), 1).getDay(); var d = new Date(myDate.getFullYear(), parseInt(myDate.getMonth() + 1), 0); var totalDay = d.getDate(); //获取当前月的天数
for (var i = 0; i < 42; i++)
_html += ' <li><div class="qiandao-icon"></div></li>'
$dateBox.html(_html) //生成日历网格
var $dateLi = $dateBox.find("li"); for (var i = 0; i < totalDay; i++)
$dateLi.eq(i + monthFirst).addClass("date" + parseInt(i + 1)); for (var j = 0; j < dateArray.length; j++) if (i == dateArray[j])
$dateLi.eq(i).addClass("qiandao"); var integral; if(talentIntegralRecordsIntegral[j]==0)
integral="大转盘";
else
integral="+"+talentIntegralRecordsIntegral[j];
$dateLi.eq(i).find("div").text(integral);
//生成当月的日历且含已签到
$(".date" + myDate.getDate()).addClass('able-qiandao');
$dateBox.on("click", "li", function() if ($(this).hasClass('able-qiandao') && _handle)
$(this).addClass('qiandao');
qiandaoFun();
参考技术A 获取id $user.id获取name $user.name
获取company $user.company追问
除了这种el表达式方法,还有其他方法吗?
追答跟踪一下源码,应该能从request或者session取出,el不挺好用的嘛
本回答被提问者和网友采纳前端js获取SpringMvc后台model中传值
也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好。
使用 SpringBoot +SpringMVC +thymeleaf 组合实现的功能,期望在 thymeleaf 中的html中的js中 获取 springboot 中 Model 中设置的值
@Controller
@RequestMapping("/web/computerTest")
public class ComputerTestWebController
/**
* 选择考试
*/
@GetMapping("/chooseExam.html")
public String chooseExam(@RequestParam String token, Model model)
Boolean showV1 = true;
Boolean showPre = true;
model.addAttribute("showV1", showV1);
model.addAttribute("showPre", showPre);
//对应显示的html
return "computertestweb/chooseExamV2";
这是我对应的html文件
有两种方式:
1 内联js方式
<script th:inline="javascript">
let activityName = "first"
if([[$showV1]])
activityName = "first"
else
activityName = "second"
</script>
2、使用隐藏域,
使用隐藏域, 先把model的值通过标签的方式放到某个input标签下,再到js中通过js或者jquery按照id的方式选取
2.1 在html 中写入隐藏标签
<input type="hidden" id="showV1" value="$showV1">
2.2 在js中通过ID获取标签获取值
let data= $("#showV1").val();
以上是关于js怎样获得后台Model中的值的主要内容,如果未能解决你的问题,请参考以下文章