它是一个两部分问题。
第1部分:我想设置jsp页面的content-type
取决于Accept
头为此我做在JSP中设置内容类型和状态码
<c:if test="${fn:contains(header['accept'], 'xml')}">
<c:set var="contentType" value="application/xml;charset=UTF-8"/>
</c:if>
<c:if test="${fn:contains(header['accept'], 'json')}">
<c:set var="contentType" value="application/json;charset=UTF-8"/>
</c:if>
<jsp:directive.page contentType='${contentType}'/>
为此,我得到响应像
我也试过
<c:set target="${pageContext.response}" property="ContentType" value="${contentType}"/>
为我得到了
Invalid property in <set>: "ContentType"
我的其他EL表达式正在被正确评估,所以我已经使用了isELIgnored
属性的实验。我也不想使用scriptlet标签。
第2部分:我只想动态设置status code
,而不使用仅来自JSP页面的scriptlet标记。
目前我正在做
<% response.setStatus(200) %>
我知道它可以在一个servlet
或filter
设置,但我希望它被从jsp
页面或通过custom
设置tag.Kindly指导我这个。