js怎样获得后台Model中的值

JavaScript017

js怎样获得后台Model中的值,第1张

获取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=0i<signInTalentIntegralRecords.lengthi++){

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 = 0i <42i++) {

_html += ' <li><div class="qiandao-icon"></div></li>'

}

$dateBox.html(_html) //生成日历网格

var $dateLi = $dateBox.find("li")       for (var i = 0i <totalDayi++) {

$dateLi.eq(i + monthFirst).addClass("date" + parseInt(i + 1))           for (var j = 0j <dateArray.lengthj++) {                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()

}

JavaScript本身获取后台返回对象是通过对这个对象的解析达到的。具体的解析过程根据后台返回数据类型不同,方法也不同,常用的返回对象为xml数据。使用JavaScript的dom操作可以解析xml数据。推荐后台返回数据使用json对象,json是JavaScript内置的数据格式,速度快使用方便

(一)Map 数据结构

1.Map 数据结构,类似于对象,键值对的集合, 所有的数据都是唯一的,不会重复,每条数据都需要放在一个数组中,它本身就是一个构造函数

size 数据的长度

set() 添加一个数据

delete() 删除一条数据

get () 获取一条数据

has() 查找某条数据,返回一个布尔值

clear() 删除所有数据

参考资料: https://www.51zxw.com/