簡體   English   中英

如何解析 URL 路徑,獲取文件名,然后使用 JSTL 和 Java scriptlet 替換文件擴展名

[英]How do I parse through a URL path, get the filename, then replace the file extension using JSTL and Java scriptlet

我需要從 URL 獲取“文件名”

我在這里聲明

<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) 並獲取前面沒有目錄的“文件名”,並且在結尾處沒有目錄。Z0F635D0E10F3874FFFA7B7

不要使用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 function。 例如

<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 function,請查看JSP/Servlet 隱藏功能底部附近的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM