通过JSP标记将JSON对象从Java传递到Javascript
我在应用程序的java服务器端有一个返回JSON对象的服务a,我需要在javascript端使用该对象来调用另一个服务B 这个平台有点复杂,有两个基于Stripes和Spring的应用程序打包在同一个war中,并且共享大量代码 到目前为止,我的解决方案是创建一个JSP标记来访问JSON对象,并将其放入一个变量中:通过JSP标记将JSON对象从Java传递到Javascript,java,json,jsp,jstl,Java,Json,Jsp,Jstl,我在应用程序的java服务器端有一个返回JSON对象的服务a,我需要在javascript端使用该对象来调用另一个服务B 这个平台有点复杂,有两个基于Stripes和Spring的应用程序打包在同一个war中,并且共享大量代码 到目前为止,我的解决方案是创建一个JSP标记来访问JSON对象,并将其放入一个变量中: @Override public int doStartTag() throws JspException { pageContext.setAttribut
@Override
public int doStartTag() throws JspException {
pageContext.setAttribute(var, SERVICE_A_JSONOBJECT, scope);
return SKIP_BODY;
}
这很好,但是jstl变量被转换为字符串,所以在javascript调用中我必须使用JSON.parse
有没有办法通过将JSON对象传递给javascript而不进行转换和解析来改进这一点
注意:由于它们是两个应用程序,我希望避免使用会话,因为这样我需要复制代码如何输出json?json字符串构成有效的JavaScript文本。只需使用
var foo=${jsonString}代码>。是的,但是javascript需要一个JSON对象,而不是javascript对象的字符串表示,不支持Java字符串包含字符{foo:“bar”}
,并且它存储在属性attr
中。行var foo=${attr}
将生成以下JavaScript代码:var foo={“foo”:“bar”}代码>。这是有效的JavaScript,它将JavaScript对象分配给变量foo
。不涉及JavaScript字符串解析。