不要使用Scriptlets。在EL中使用JSTL 函数。
<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 函数。例如
<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 函数,请查看JSP/Servlet的隐藏特性底部附近的示例。