5

我有一个非常简单的 JSP,如下所示:

<%@ page contentType="application/json" %>${actionBean.response}

actionBean.response返回一个String。有时该字符串是 json,其 contentType 为“application/json”,但有时该字符串是 jsonp,其 contentType 为“application/javascript”。但我不知道如何动态设置 contentType 的值。

  1. 我试过使用<c:choose>contentType 但它给了我一个错误,说我不能设置 contentType 两次。
  2. 我尝试使用 EL 作为属性的值,但它没有得到扩展。

有没有办法动态设置这个值?

4

2 回答 2

4

您可以尝试使用 scriptlet(不理想,但我不确定是否有其他方法),如下所示:

<%
    if (actionBean.isJson()) {
        response.setContentType("application/json");
    } else if (actionBean.isJsonp()) {
        response.setContentType("application/javascript");
    }
%>

编辑:正如 Joop 在评论中提到的那样,请确保您没有使用 @page 指令设置 contentType 。

于 2013-07-23T15:14:25.440 回答
0

我不认为jsp是为了这样做。您可以在 javascript 函数中捕获 JSON 响应,而无需声明内容类型。

我也从未见过任何 jsp 页面变成 javascript 文件。

你可以<s:property name="something" escapeHtml="false" escapeJavascript="false"/>同时使用。

于 2013-07-19T18:03:49.603 回答