//In java
public class Foo {
// Define properties and get/set methods
private int prop1;
private String prop2;
public String toString() {
String jsonString = ...; /// Convert this object to JSON string
return jsonString;
}
}
Как сказал Скаффман , синтаксис EL ${obj}
вызовет toString()
.
Итак, если объект foo
в JSTL
является экземпляром Foo
.
Тогда
// test.jsp
<script>
var a = ${foo}; // ${foo} will be {"prop1": ooo, "prop2": "xxx"}
console.log(a.prop1);
console.log(a.prop2);
</script>
Пример
Если toString()
выведет строку формата JSON
, например, Foo
toString()
выводит строку формата JSON
. то:
// .java codes
Foo a = ...// a Foo object. => { 'prop1': ooo }
List<Foo> b = ... //< Array. => [ {'prop1': ooo}, {prop1: xxx} ]
// Pass object to JSTL by HttpServletRequest or ..
request.setAttribute('a', a);
request.setAttribute('b', b);
// .jsp codes
<span>${a.prop1}</span>
<script>
var aa = ${a}; // ${a} => { 'prop1': ooo }
var bb = ${b}; // ${b} => [ {'prop1': ooo}, {prop1: xxx} ]
console.log(aa.prop1);
console.log(bb[0].prop1);
</script>