通过JSP标记将JSON对象从Java传递到Javascript

通过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

我在应用程序的java服务器端有一个返回JSON对象的服务a,我需要在javascript端使用该对象来调用另一个服务B

这个平台有点复杂,有两个基于Stripes和Spring的应用程序打包在同一个war中,并且共享大量代码

到目前为止,我的解决方案是创建一个JSP标记来访问JSON对象,并将其放入一个变量中:

   @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字符串解析。