1

URLから「ファイル名」を取得する必要があります

ここで私は宣言しています

<p:out var="path" value="${webObject.path}" scope="page"/>
<c:set var="string1" value="${path}" />
<p:out value="${string1}" />

これにより、Webページに「dir1 / dir2 / dir3/filename.xml」が返されます。

必要なのは、生成されるURL(dir1 / .../ filename.xml)を取得し、先頭にディレクトリがなく、末尾に.xmlがない「filename」を取得するJavaスクリプトレットです。

4

1 に答える 1

4

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/サーブレットの非表示の機能の下部にある例を参照してください。

于 2011-08-10T20:30:23.147 に答える