2014-11-04 5 views
1

Внутри страницы JSP, я должен был определить текущий путь страницы в файловой системе, например:Определение файловой системы путь текущей JSP-страницы

WEB-INF/jsp/currentPage.jsp 

Я хочу, чтобы иметь возможность JSP: включить на другую страницу, основанную на текущем пути к файловой системе, а не на URL, который пользователь использует для доступа к странице.

Я хочу, чтобы иметь возможность копировать/вставлять один и тот же код во многие JSP, и каждая страница знает свой путь к файловой системе.

+0

Это кажется очень плохая практика. Не выходите за пределы приложения. –

ответ

0

Ответ доступен here. В принципе, вы можете использовать регулярные выражения для this.getClass(), чтобы определить полный путь.

В JSP:

<jsp:include page='<%= SkinController.getSkinPath(this.getClass()) %>' /> 

И SkinController.java

public static String getSkinPath(Class<?> cls){ 
    Pattern pattern = Pattern.compile("org.*INF.?.(jsp|tiles).(.*?)_jsp"); 

    String name = cls.getName(); 

    Matcher matcher = pattern.matcher(name); 

    if(matcher.matches()){ 
     String type = matcher.group(1); 
     String path = matcher.group(2).replace(".", "/"); 

     //fullPath is the value we're looking for int he original question 
     String fullPath = type.concat("/").concat(path).concat(".jsp"); 

     return getSkinPath(fullPath); 
    }else{ 
     return ""; 
    } 

} 
0

Для ссылки на другие страницы jsp (и для других методов утилиты для JSP) используйте библиотеку JSTL. Очень удобно. Вы можете посмотреть this page для справки о том, как его использовать.

0

Используйте geturi метод по запросу:

String uri = request.getRequestURI(); 
String pageName = uri.substring(uri.lastIndexOf("/")+1); 
+0

Это вернет путь к [корню сервлета] (http://stackoverflow.com/questions/12160639/what-does-mean-in-the-method-servletcontext-getrealpath), я хочу, чтобы путь к текущая страница JSP. Я хочу, чтобы иметь возможность копировать/вставлять один и тот же код во многие JSP, и каждая страница знает свой путь к файловой системе. – spaetzel

+0

получите uri и проанализируйте его, чтобы узнать вашу страницу jsp. – SMA

+0

Это не так, поскольку JSP включены в другие JSP. Мне нужен фактический путь к файловой системе, а не вытаскивать его из URI запроса. – spaetzel

Смежные вопросы