这是我的jsp文件:
<%@ page contentType="text/plain" %>
<%@ page pageEncoding="UTF-8"%><%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:out value="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, '')}" /><c:out value="${model.uri}" />
我收到错误
The method replace(String, String, String) in the type Functions is not applicable for the arguments (StringBuffer, String, String)
我已经尝试过pageContext.request.requestURL.toString(),但是toString()显然不是一种方法。有什么建议么?
最佳答案
StringBuffer#toString()
绝对是正确的调用方法。问题是使用EL调用它。您可以按照this answer中所述使用<c:set>
将其转换为字符串。
<c:set var="url">${pageContext.request.requestURL}</c:set>
<c:out value="${fn:replace(url, pageContext.request.requestURI, '')}" />
就是说,我认为有一种更好的方式来获取您想要的不使用
fn:replace
的输出字符串。