我有一个非常简单的JSP,如下所示:
<%@ page contentType="application/json" %>${actionBean.response}
actionBean.response
返回String
。有时该字符串是json,其contentType为“application / json”,但有时该字符串是jsonp,其contentType为“application / javascript”。但我无法弄清楚如何动态设置contentType的值。
<c:choose>
,但它给出了一个错误,说我无法设置两次contentType。 有没有办法动态设置这个值?
答案 0 :(得分:4)
您可以尝试使用scriptlet(不理想,但我不确定还有其他方法),如下所示:
<%
if (actionBean.isJson()) {
response.setContentType("application/json");
} else if (actionBean.isJsonp()) {
response.setContentType("application/javascript");
}
%>
编辑:正如Joop在评论中提到的那样,请确保您没有使用@page指令设置contentType。
答案 1 :(得分:0)
我不认为jsp的意图是这样做的。您可以在javascript函数中捕获JSON响应,而无需声明内容类型。
我也从来没有看到任何jsp页面变成javascript文件。
您可以使用<s:property name="something" escapeHtml="false" escapeJavascript="false"/>
。