Programing

다른 JSP 파일 포함

crosscheck 2020. 6. 8. 20:49
반응형

다른 JSP 파일 포함


현재 JSP를 배우려고합니다. 내 질문은 현재 다음을 사용하여 페이지의 머리글과 바닥 글을 포함하는 데 사용되었습니다.

<%@include file="includes/header.jsp" %>

<%@include file="includes/footer.jsp" %>

그러나 이제 페이지 내용도 분리했습니다. 따라서 사용자가 제품과 같은 페이지를 클릭하면 다음 위치에있는 JSP 파일을로드해야합니다. includes/pages/products.jsp따라서 사용자 링크는 다음과 같습니다 <a href="index.jsp?p=products">Products</a>.

따라서 p 값을 가져 와서 페이지를 표시해야합니다.

다음은 내가 지금까지 한 일입니다.

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<%@include file="includes/page_name.jsp" %>

<% 
 }
%>

그렇다면 변수 "p"의 값을 "page_name"위치에 어떻게 배치합니까?

아니면 사용할 수있는 다른 방법이 있습니까?

PHP에서는 include()or를 사용할 수 있습니다 include_once(). 이 JSP에 조금 갇혀 있습니다. :(


당신이하고있는 일은 정적 포함입니다. 정적 포함은 컴파일 타임에 해결되므로 실행시에만 알려진 매개 변수 값을 사용하지 않을 수 있습니다.

필요한 것은 다음과 같습니다.

<jsp:include page="..." />

스크립틀릿 대신 JSP EL을 사용해야합니다. 또한 index.jsp로 중앙 컨트롤러를 구현하고있는 것 같습니다. 대신 서블릿을 사용하여이 서블릿에서 적절한 JSP로 디스패치해야합니다. 또는 Stripes 또는 Spring MVC와 같은 기존 MVC 프레임 워크를 사용하십시오.


그런 매개 변수를 사용할 수 있습니다

<jsp:include page='about.jsp'>
    <jsp:param name="articleId" value=""/>
</jsp:include>

about.jsp에서 매개 변수를 사용할 수 있습니다

<%String leftAds = request.getParameter("articleId");%>

Include 지시문을 사용할 수 있습니다

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<%@include file="<%="includes/" + p +".jsp"%>"%>

<% 
 }
%>

또는 JSP 포함 조치

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    

<jsp:include page="<%="includes/"+p+".jsp"%>"/>

<% 
 }
%>

다른 것은 include 지시문이 변환 단계 동안 파일을 포함한다는 것입니다. JSP 포함 조치에는 페이지 요청시 파일이 포함되는 반면

I recommend Spring MVC Framework as your controller to manipulate things. use url pattern instead of parameter.

example:

www.yourwebsite.com/products

instead of

www.yourwebsite.com/?p=products

Watch this video Spring MVC Framework


At page translation time, the content of the file given in the include directive is ‘pasted’ as it is, in the place where the JSP include directive is used. Then the source JSP page is converted into a java servlet class. The included file can be a static resource or a JSP page. Generally, JSP include directive is used to include header banners and footers.

Syntax for include a jsp file:

<%@ include file="relative url">

Example

<%@include file="page_name.jsp" %>

1.<a href="index.jsp?p=products">Products</a> when user clicks on Products link,you can directly call products.jsp.

I mean u can maintain name of the JSP file same as parameter Value.

<%
 if(request.getParameter("p")!=null)
 { 
   String contextPath="includes/";
   String p = request.getParameter("p");
   p=p+".jsp";
   p=contextPath+p;

%>    

<%@include file="<%=p%>" %>

<% 
 }
%>

or

2.you can maintain external resource file with key,value pairs. like below

products : products.jsp

customer : customers.jsp

you can programatically retrieve the name of JSP file from properies file.

this way you can easily change the name of JSP file

참고URL : https://stackoverflow.com/questions/9110148/include-another-jsp-file

반응형