我需要从网址
获取“filename”我在这里宣布
<p:out var="path" value="${webObject.path}" scope="page"/>
<c:set var="string1" value="${path}" />
<p:out value="${string1}" />
在网页上返回“dir1 / dir2 / dir3 / filename.xml”
我需要的是一个Java Scriptlet,它接收正在生成的URL(dir1 /.../ filename.xml)并获取前面没有目录但最后没有.xml的'filename'。
答案 0 :(得分:3)
不要使用 Scriptlets 。在JSTL functions中使用EL。
<c:set var="pathparts" value="${fn:split(path, '/')}" /> <!-- String[] with values "dir1", "dir2", "dir3" and "filename.xml" -->
<c:set var="filename" value="${pathparts[fn:length(pathparts) - 1]}" /> <!-- Last item of String[]: "filename.xml" -->
<c:set var="basename" value="${fn:split(filename, '.')[0]}" /> <!-- Result: "filename" -->
如果您确实需要为此编写Java代码,请考虑使用EL函数。 E.g。
<c:set var="basename" value="${util:basename(path)}" />
带
public static String basename(String path) {
String[] pathparts = path.split("/");
String filename = pathparts[pathparts.length - 1];
return filename.split("\\.")[0];
}
如何注册EL函数,请查看Hidden features of JSP/Servlet底部附近的示例。