2013-06-30 7 views
2

<jsp:include file="include/data.jsp" />indexq.jsp에 표시하면 데이터가 표시되지 않지만 <%@ include file="include/data.jsp" %>을 사용하면 예상대로 작동하지 않습니다. 나는 그것의 범위 또는 표현 언어 이슈인지 확실하지 않다. 또한 아래의 코드 포함 :jsp : JSP 태그에서 JSP/서블릿 범위 문제

TaxiController.java을

public class TaxiController extends HttpServlet { 

    // codes... 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

       // codes... 
     req.setAttribute("taxi_list", taxiDao.getAll()); 
     req.getRequestDispatcher("/indexq.jsp").forward(req, resp); 

    } 
} 

는 indexq.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <script src="js/jquery-1.10.1.min.js" ></script> 
     <title>Taxi List</title> 
    </head> 
    <body> 
     <%@ include file="include/form.jsp" %> 
     <br /> 
     <jsp:include page="include/data.jsp" /> 
     <%-- <%@ include file="include/data.jsp" %> --%> 
    </body> 
</html> 
은/data.jsp

<table> 
    <thead> 
     <tr><th colspan="5">Data</th></tr> 
     <tr> 
      <th>Date</th> 
      <th>Taxi Name</th> 
      <th>Plate number</th> 
      <th>Amount</th> 
     </tr> 
    </thead> 
    <tbody> 
     <c:forEach var="taxi" items="${taxi_list }" > 
     <tr> 
      <td>${taxi.date } </td> 
      <td>${taxi.taxiName }</td> 
      <td>${taxi.plateNum }</td> 
      <td>${taxi.amount }</td> 
     </tr> 
     </c:forEach> 
    </tbody> 
</table> 
포함3210

감사합니다.

답변

1

기본적으로 <%@ include file="include/form.jsp" %>은 동일한 컨텍스트/요청을 사용하고 <jsp:include file="include/data.jsp" />은 separete 요청을 사용합니다. http://www.objectpartners.com/2011/04/14/jsp-to-include-or-jspinclude/

<jsp:include page=”"/> 태그 : 당신이 링크에서 추출에 대해 다음

몇 가지 자세한 정보를 원하시면있는 요청의 속성으로 값을 설정하기 때문에

그래서 귀하의 경우에 작동하지 않았다 지정된 페이지를 렌더링하는 결과 인 이 포함 된 JSP에 의 태그 위치에 삽입된다는 점에서 다르게 작동합니다. 이는 기본적으로 요청한 페이지를 동일한 컨테이너에 별도의 렌더링 요청 으로 제출하고 파일 내용이 아닌 결과를 가져옴으로써 수행됩니다. 이 요청은 자체 컨텍스트에서 완료된 입니다. 즉, 동일한 페이지 정보를 태그가 포함 된 페이지로 사용하지 않습니다. 그것을 복사 및 붙여 넣기 것처럼 포함 된 내용, 태그가 포함 된 JSP로 명명 된 파일의 내용을 삽입합니다 충돌 변수

<%@include file=”" %> 태그

을 가질 수있다 특히이 , 편리 할 수 ​​있습니다. 포함 된 파일의 내용을 파싱하기 전에이 작업을 수행합니다. 포함 된 JSP가 구문 분석되는 동안 이 파싱됩니다. 이것은 대부분 이며 C#include 지시문과 유사합니다. 사전 처리 중에 파일이 컴파일되기 전에 포함 파일을 "붙여 넣기"합니다. 콘텐츠가 포함 된 후에 콘텐츠가 모두 동일한 컨텍스트에있는 것으로 평가되므로 콘텐츠에 단순히 입력 된 경우 동일한 액세스 및 제약 조건이 포함 된 코드에 포함됩니다.

+0

감사합니다. fmodos! 지금 당장은 분명해, 나는 단지 내 코드에 include 지시어를 사용할 것이다. 감사! – jzarsuelo

+0

@ cRane01 환영합니다. 기꺼이 도와 드리겠습니다. – fmodos