2009-08-06 32 views
10

Tôi muốn đơn giản hóa JSP của mình hơn nữa bằng cách minh bạch bao gồm cả chúng. Ví dụ: đây là dòng tôi muốn xóa:Tự động bao gồm JSP trong mọi JSP

<%@ include file="/jsp/common/include.jsp"%> 

Tệp include.jsp về cơ bản tuyên bố tất cả thư viện thẻ tôi đang sử dụng. Tôi đang chạy này trên WebSphere 6.0.2 Tôi tin tưởng và đã thử cấu hình này:

<!-- Include this for every JSP page so we can strip an extra line from the JSP --> 
    <jsp-config> 
     <jsp-property-group> 
      <url-pattern>*.htm</url-pattern> 
      <!--<include-prelude>/jsp/common/include.jsp</include-prelude>--> 
      <include-coda>/jsp/common/include.jsp</include-coda> 
     </jsp-property-group> 
    </jsp-config> 

Cả include-preludeinclude-coda đã không làm việc.

Tôi đã đọc rằng những người dùng WebSphere khác không thể thực hiện điều này và đang chạy; Tuy nhiên, người dùng tomcat đã có thể.

Trả lời

8

Các jsp-property-group đã được giới thiệu trong JSP 2.0 (i.o.w. Servlet 2.4). Websphere 6.0 là Servlet 2.3.

Vì vậy, bạn có 3 lựa chọn:

  1. quên nó.
  2. Nâng cấp Websphere.
  3. Thay thế Websphere.
+2

Chúng tôi có thể đang nâng cấp websphere, nhưng chúng tôi sẽ không bao giờ thay thế nó vì cùng lý do nó được chọn để phát triển ngay từ đầu. Tôi đã từng thích các sản phẩm của IBM cho đến khi tôi bắt đầu sử dụng WID/WAS. –

5

Tôi không chắc phiên bản Servlet nào đã được giới thiệu ... có thể hộp chứa servlet của Websphere không hỗ trợ không?

Dù bằng cách nào, đối với loại tác vụ này, có một công cụ bên thứ 3 đẹp hơn được gọi là SiteMesh. Nó cho phép bạn soạn các trang theo đúng cách bạn mô tả, nhưng theo cách rất linh hoạt. Được đề xuất.

+0

Tôi làm điều này lần thứ hai. Hoặc là SiteMesh hoặc Tiles. – amischiefr

+0

Tôi đã sử dụng SiteMesh trước và thích nó; tuy nhiên, chúng tôi đang sử dụng Gạch. Tôi muốn đơn giản hóa JSP vì vậy nó là ít dòng mã, sọc xuống phần có ý nghĩa. –

1

Bạn có thể thử viết một bộ lọc mà các cuộc gọi

getRequestDispatch("path-to-jsp-to-include").include(req, res) 
Các vấn đề liên quan