2010-06-07 32 views
24

Tôi đang tìm kiếm công cụ tạo mẫu cho Java bằng cú pháp như trong các mẫu Django hoặc Twig (PHP). Nó có tồn tại không?Hệ thống mẫu giống như Django cho Java?

Cập nhật: Mục tiêu là có cùng một tệp mẫu cho các ngôn ngữ khác nhau.

<html> 
{{head}} 
{{ var|escape }} 
{{body}} 
</html> 

có thể được hiển thị từ mã python (Django) cũng như từ PHP, sử dụng Twig. Tôi đang tìm giải pháp Java.

Bất kỳ hệ thống mẫu nào khác có sẵn trong Java, PHP và python đều phù hợp.

+0

Tôi nghĩ đây là một câu hỏi rất thú vị! Vì vậy, về cơ bản bạn đang tìm kiếm các công cụ mẫu là ngôn ngữ chéo/khung nơi bạn có thể sử dụng cùng một mẫu trong khi trao đổi toàn bộ phần còn lại của ngăn xếp công nghệ. – Davy8

+0

Tôi sẽ LOOOVE django giống như động cơ templating. – drozzy

Trả lời

10
+0

Sarvash, bạn có may mắn với một trong những đề xuất này không? – bchang

+0

Có so sánh một số [công cụ tạo khuôn mẫu web] (http://en.wikipedia.org/wiki/Template_engine_%28web%29) trên wikipedia. –

+8

Sau khi kiểm tra dự án jandgod - Tôi thực sự sợ sử dụng nó. Các mã là khủng khiếp (tất cả các loại số ma thuật, nhận xét ra các phần), và đã không được cập nhật kể từ năm 2010. Đó là ý tưởng tuyệt vời, tiếc là thực hiện ... – drozzy

0

Chắc chắn, có tất cả các loại công cụ tạo mẫu cho Java. Tôi đã sử dụng FreeMarker, Velocity và StringTemplate. Tôi không chắc chắn những gì bạn có nghĩa là cú pháp giống như Django; mỗi động cơ có các biến thể riêng của nó trên một phương pháp tiếp cận khuôn mẫu.

Để so sánh một số công cụ khác nhau, hãy kiểm tra here.

+4

Tôi khá chắc chắn "Cú pháp giống Django" có nghĩa là cú pháp tương tự như trong django: http://docs.djangoproject.com/en/dev/topics/templates/ – drozzy

+0

Tại sao phải trả lời nếu bạn thậm chí không biết những gì câu hỏi đã được hỏi về ... –

+1

Bởi vì khi tôi trả lời câu hỏi cách đây 3 năm, nó không có tất cả các chi tiết sau khi Cập nhật: Mục tiêu là để có cùng một ... Nhìn vào dòng đầu tiên của các câu hỏi và giải thích cho tôi làm thế nào nó không thích hợp để sản để biết thêm thông tin? – Jeff

1

Nếu bạn muốn các mẫu tương tự cho các ngôn ngữ khác nhau, bạn có thể có một cái nhìn tại Clearsilver.

Trình cắt xén là một công cụ mẫu trung lập về ngôn ngữ giúp phân tách bản trình bày khỏi mã bằng cách chèn định dạng dữ liệu phân cấp trung bình ngôn ngữ (HDF) giữa mã và mẫu của bạn. Hãy nghĩ về HDF như XML, nhưng đơn giản hơn nhiều.

Nó được sử dụng cho nhiều trang web có lưu lượng truy cập cao, bao gồm Yahoo! Groups, Gmail HTML tĩnh, orkut.com, wunderground.com và các trang khác. Ngôn ngữ triển khai được sử dụng với nó bao gồm C/C++, Python, Java, Ruby, PHP, C# và các ngôn ngữ khác. Khung công tác Python cũng bao gồm một bộ điều phối Page-Class và ORM đơn giản, đó là một chút Ruby-On-Rails giống như ở chỗ nó làm cho việc ánh xạ giữa các bảng cơ sở dữ liệu, HDF và các mẫu lấy rất ít mã.

Việc triển khai Clearsilver chính là bằng C với trình bao bọc ngôn ngữ cụ thể. Ngoài ra còn có một thực hiện java 100% được thực hiện bởi Google và nguồn mở có tên JSilver.

http://www.clearsilver.net/

http://code.google.com/p/jsilver/

21

tôi đã phát triển Jtwig. Bạn có thể thử. Nó đang được sử dụng trong một số dự án với thành công. Thật dễ dàng để thiết lập với một tích hợp tốt đẹp với webmvc mùa xuân.

Chỉ bao gồm phụ thuộc sử dụng maven hoặc hệ thống tương tự.

<dependency> 
    <groupId>com.lyncode</groupId> 
    <artifactId>jtwig-spring</artifactId> 
    <version>2.0.3</version> 
</dependency> 

Và định cấu hình bean trình phân giải chế độ xem để trả về giá trị Jtwig.

@Bean 
public ViewResolver viewResolver() { 
    JtwigViewResolver viewResolver = new JtwigViewResolver(); 
    viewResolver.setPrefix("/WEB-INF/views/"); 
    viewResolver.setSuffix(".twig"); 
    return viewResolver; 
} 

Hoặc, nếu bạn sử dụng xml cấu hình cơ bản:

<bean id="viewResolver" class="com.lyncode.jtwig.mvc.JtwigViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".twig"/> 
</bean> 
0

Bạn có thể sử dụng Mustache.javaHandlebars.java. Ria mép rất tối giản. Tay lái tương tự và tương thích với Mustache, nhưng bạn có thể rất dễ dàng viết tiện ích mở rộng của riêng bạn.

Các vấn đề liên quan