2011-01-24 45 views
6

Tôi đang bắt đầu xây dựng các ứng dụng web trong Spring 3 (và trong J2EE) nói chung. Nhìn vào ví dụ petclinic tôi đã thấy rằng lập trình viên tạo ra nhiều mảnh JSP, như tiêu đề, bao gồm, footer và sau đó khâu chúng lại với nhau bằng cách sử dụng bao gồm tĩnh. Dù sao những gì tôi muốn là tôi có thể có một trang cơ bản, như Base.jsp và có thể bao gồm những thứ như thế này:Tính năng bao gồm các tệp JSP vào mùa xuân và động bao gồm

<body> 
<jsp:include page="${subpage}"></jsp:include> 
</body> 

lý do là tôi muốn một trang chính, sau đó có khả năng đưa trong ModelAndView được trả về bởi bộ điều khiển mà các phần của các trang hiển thị trong từng tình huống (với dữ liệu được đính kèm với nó). Điều này làm việc, nhưng nó không có lỗi trong trường hợp ${subpage} không được tìm thấy, tên jsp là sai hoặc thiếu. Tôi muốn kiểm tra lỗi nhiều hơn ...

Đây có phải là cách tốt nhất và được khuyến nghị để thực hiện việc này không? Và nếu điều này có vẻ là một ý tưởng tốt cho những gì tôi đã nghĩ, cách chính xác để làm điều đó là gì?

Trả lời

1

Dường như bạn có thêm dấu ngoặc kép trong số subpage của mình. Loại bỏ chúng. Ví dụ:

<c:set var="subpage" value="/jsp/index.jsp" /> 

Nếu bạn phải đặt nó trong một bộ điều khiển hay servlet - chỉ cần sử dụng request.setAttribute("subpage", "/jsp/index.jsp")

+0

không thể, trang con được thay đổi trong lớp bộ điều khiển. Bây giờ cách để thiết lập nó từ JSP. – gotch4

+0

Tôi đã chỉnh sửa câu hỏi ... hãy kiểm tra – gotch4

0

Đối với kiểm tra lỗi, bạn có thể sử dụng:

<c:catch var="myException"> 
    <c:import url="${subpage}" /> 
</c:catch> 

và sau đó bạn có thể kiểm tra nó với :

<c:if test="${myException != null}"> 
... 
</c:if> 
0

Hãy xem Sitemesh (http://www.opensymphony.com/sitemesh). Nó là một hệ thống bố trí trang dựa trên bộ lọc servlet dễ sử dụng. Tôi đã thực hiện một số dự án sử dụng nó với Spring MVC và nó hoạt động rất tốt.