Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Xây dựng giao diện trong Spring MVC với sitemesh

596 Lượt xem 0 Bình luận 0 Lượt báo xấu
1.SiteMesh là gì?

SiteMesh là bộ khung bố trí trang web được tích hợp vào ứng dụng web để hỗ trợ các website lớn có nhiều trang mà vẫn đảm bảo yêu cầu sự nhất quán về giao diện, điều hướng và bố cục.

SiteMesh chặn các request tới bất kỳ trang HTML tĩnh hoặc động gửi đến web server, phân tích trang web, lấy thông tin và dữ liệu trên nội dung trang này rồi tạo ra một trang phù hợp với những thay đổi với bản gốc. Điều này dựa trên các mẫu thiết kế nổi tiếng GangOfFour Decorator.

SiteMesh xây dựng dựa trên các công nghệ của Java 2: Servlet, JSP và XML nên đương nhiên nó làm việc tốt với các ứng dụng J2EE. Tuy nhiên nó có thể được tích hợp với kiến trúc web mà máy chủ không phải dựa trên Java như CGI (Perl / Python / C / C + + / etc), PHP, Cold Fusion..

2. Cấu hình sitemesh

Khai báo thư viện sitemesh trong file pom.xml


pom.xml


1
2
3
4
5
6
7
8
9
10
        2.4.2
    
 
            opensymphony
            sitemesh
            ${sitemesh.version}
        


Thêm filter vào file web.xml

web.xml

1
2
3
4
5
6
7
8
9
10
    sitemesh
    com.opensymphony.module.sitemesh.filter.Page  Filter
    sitemesh
    /*


Tạo một số thư mục trong webapp/

  • decorators : Thư mục gồm tất cả các file decorator (e.g. main.jsp, printable.jsp).
  • includes: Thư mục gồm tất cả các file sẽ được include tới các file khác (e.g. header.jsp, footer.jsp, copyright.jsp).
  • resources/images: Thư mục bao gồm tất cả các ảnh (e.g. background.gif, logo.gif).
  • resources/styles: Thư mục bao gồm tất cả CSS styles (e.g. ie4.css, ns4.css).
  • resources/js: Thư mục bao gồm tất cả các scripts (JavaScript, VBScript files).

Tạo file WEB-INF/decorators.xml

decorators.xml

1
2
3
4
5
6
7
8
 
    
        /*
    


Như vậy, các url của website đều sử dụng layout có tên mà main (được định nghĩa trong file main.jsp). Project của bạn có thể khai báo nhiều layout khác nhau cho nhóm các chức năng có giao diện giống nhau.

Tạo file: /includes/header.jsp

1
2
3
4
5
6
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
[HEADER]



Tạo file: /includes/footer.jsp

1
2
3
4
5
6
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 

[FOOTER]


Tạo file: /includes/taglibs.jsp

1
2
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>


Tạo 1 file decorator: /decorators/main.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/includes/taglibs.jsp"%>
 
http://www.w3.org/TR/html4/loose.dtd">
[springapp] <decorator:title/>
   
      <%@ include file="/includes/header.jsp"%>
      
         
      
      <%@ include file="/includes/footer.jsp"%>
   



Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng