[SPRING] Spring webapp에서 JSP로 올바른 현재 URL을 얻는 방법
SPRINGSpring webapp에서 JSP로 올바른 현재 URL을 얻는 방법
Spring webapp의 JSP에서 올바른 현재 URL을 얻으려고합니다. JSP 파일에서 다음 조각을 사용하려고합니다.
${pageContext.request.requestURL}
문제는 반환 된 URL에 UrlBasedViewResolver에 의해 정의 된 접두사와 접미사가 포함되어 있다는 것입니다. 예를 들어 올바른 URL은 다음과 같습니다.
http : // localhost : 8080 / page
하지만 반환 된 것은 다음과 같습니다.
http : // localhost : 8080 / WEB-INF / jsp / page.jsp
해결법
-
==============================
1.가장 좋은 방법은 EL을 다음과 같이 사용하는 것입니다.
가장 좋은 방법은 EL을 다음과 같이 사용하는 것입니다.
${requestScope['javax.servlet.forward.request_uri']}
-
==============================
2.jsp 파일에서 :
jsp 파일에서 :
request.getAttribute("javax.servlet.forward.request_uri")
-
==============================
3.어쩌면 당신은 다음과 같은 것을 찾고있을 것입니다 :
어쩌면 당신은 다음과 같은 것을 찾고있을 것입니다 :
<%= new UrlPathHelper().getOriginatingRequestUri(request) %>
이것은 우아하지는 않지만 내 문제를 해결했습니다.
-
==============================
4.방금 귀하의 질문에 대한 정답을 찾았습니다. 핵심은 스프링 태그를 사용하고 있습니다.
방금 귀하의 질문에 대한 정답을 찾았습니다. 핵심은 스프링 태그를 사용하고 있습니다.
<spring:url value="" />
value 속성을 비워두면 Spring은 @RequestMapping에 설정된 매핑 URL을 표시합니다.
-
==============================
5.Interceptor를 만들고 요청 속성을 설정할 수 있습니다.
Interceptor를 만들고 요청 속성을 설정할 수 있습니다.
request.setAttribute("__SELF",request.getRequestURI);
그리고 jsp에서
<form action="${__SELF}" ></form>
-
==============================
6.이 시도:
이 시도:
<%@ page import="javax.servlet.http.HttpUtils.*" %> <%= javax.servlet.http.HttpUtils.getRequestURL(request) %>
-
==============================
7.요청 URI 이외의 다른 정보 (예 : 쿼리 문자열)를 알고 싶은 사람은 RequestDispatcher (Servlet API 3.1+) 인터페이스의 코드에서 변수의 이름을 모두 확인할 수 있습니다.
요청 URI 이외의 다른 정보 (예 : 쿼리 문자열)를 알고 싶은 사람은 RequestDispatcher (Servlet API 3.1+) 인터페이스의 코드에서 변수의 이름을 모두 확인할 수 있습니다.
다음과 같이 쿼리 문자열을 얻을 수 있습니다.
${requestScope['javax.servlet.forward.query_string']}
-
==============================
8.어떤 Spring 버전을 사용하고 있습니까? 나는 Spring 3.1.1.RELEASE에서 이것을 테스트했다. 다음 간단한 애플리케이션을 사용한다.
어떤 Spring 버전을 사용하고 있습니까? 나는 Spring 3.1.1.RELEASE에서 이것을 테스트했다. 다음 간단한 애플리케이션을 사용한다.
Folder structure ----------------------------------------------------------------------------------- spring-web | --- src | --- main | --- webapp | --- page | | | --- home.jsp | --- WEB-INF | --- web.xml | --- applicationContext.xml home.jsp ----------------------------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html dir="ltr" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Welcome to Spring Web!</title> </head> <body> Page URL: ${pageContext.request.requestURL} </body> </html> web.xml ----------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" metadata-complete="true" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <display-name>org.example.web</display-name> <servlet> <servlet-name>spring-mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/webContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc-dispatcher</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> </web-app> applicationContext.xml ----------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> <context:annotation-config /> <context:component-scan base-package="org.example" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page/" /> <property name="suffix" value=".jsp" /> </bean> <mvc:annotation-driven />
http : // localhost : 8080 / spring-web / page / home.jsp에 액세스 할 때 URL은 http : // localhost : 8080 / spring-web / page / home.jsp로 올바르게 표시됩니다.
-
==============================
9.나는 비슷한 상황에서 다음을 사용했다. 필요한 경우 $ {currentUrl}을 사용할 수 있습니다. 핵심 태그 라이브러리가 필요합니다.
나는 비슷한 상황에서 다음을 사용했다. 필요한 경우 $ {currentUrl}을 사용할 수 있습니다. 핵심 태그 라이브러리가 필요합니다.
<c:url value = "" var = "currentUrl" ></c:url>
-
==============================
10.
*<% String myURI = request.getAttribute("javax.servlet.forward.request_uri").toString(); %> <% String[] split = myURI.split("/"); %> <% System.out.println("My url is-->"+ myURI + " My url splitter length --->"+split.length +"last value"+split[4]);%> <%-- <jsp:param name="split[4]" value="split[4]" /> --%> <c:set var="orgIdForController" value="<%= split[4] %>" /> <a type="button" class="btn btn-default btn-xs" href="${pageContext.request.contextPath}/supplier/add/${orgIdForController}"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add </a> - List item*
from https://stackoverflow.com/questions/9711896/how-to-get-correct-current-url-in-jsp-in-spring-webapp by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트에서 기본 활성 프로파일 설정하기 (0) | 2019.02.02 |
---|---|
[SPRING] Spring MVC 3 Validation - 기본 공급자를 찾을 수 없음 (0) | 2019.02.02 |
[SPRING] spring-boot - springMVC에 대한 디스패처 서블릿을 실제로 등록하는 코드는 무엇입니까? (0) | 2019.02.02 |
[SPRING] XML 구성없이 사용자 지정 AuthenticationEntryPoint를 정의하는 방법 (0) | 2019.02.02 |
[SPRING] Apache poi를 사용하여 csv를 xls / xlsx로 변환 하시겠습니까? (0) | 2019.02.02 |