2013-02-21 20 views
5

Có điều gì an toàn hơn JSP không? Tôi không tìm thấy bất kỳ câu trả lời có ý nghĩa nào thông qua Google. Chúng tôi hiện đang sử dụng khung công tác Spring MVC và JSP để hiển thị HTML. Tôi đã đến để ghét bản chất năng động của JSP rendering, trong đó bạn tham khảo một mô hình như ${model.someAttribute} nhưng không có cách nào để nói liệu thuộc tính này có sẵn tại các mô-đun nhất định hoặc xác định loại mô hình mà các mẫu mong đợi. Nó trở nên rất khó để tái cấu trúc các getters của các mô hình vì Eclipse không biết các khuôn mẫu nào sử dụng mô hình và cũng không thể liên kết các getters với các trình truy cập thuộc tính trong các khuôn mẫu.Bất kỳ phương án thay thế an toàn nào cho JSP templating

Có một công nghệ tạo khuôn mẫu ở đó, điều này vừa kém xấu xí hơn là loại bỏ mã HTML thông qua mã bắt buộc và nhiều loại/biên dịch an toàn hơn JSP?

+0

có thể thử IntelliJ? – irreputable

+0

@irreputable, hiện nó bằng cách nào đó hỗ trợ refactoring tên tài sản đậu và chăm sóc các mẫu quá? – d56

Trả lời

0

Lift (dựa trên Scala) cung cấp mô hình rất đẹp với cách bố trí HTML tốt từ mã ứng dụng thực tế (được gọi là đoạn trích). Mặc dù rào cản nhập cảnh có thể cao, nhưng lợi nhuận thực sự lớn trong thời gian dài hơn. Một ưu điểm lớn là nó chạy trên JVM để bạn có thể sử dụng lại hầu hết các thư viện Java của mình và mã khác.

+0

Dường như không được biên dịch an toàn hoặc là có các công cụ đảm bảo rằng bạn không truy cập vào các thuộc tính và công cụ không xác định có trợ giúp khi tái cấu trúc các tên thuộc tính không? – d56

+0

@ d56 Thực ra là vậy. Trong HTML của bạn, bạn chỉ cần đánh dấu các phần tử của bạn mà ứng dụng sẽ tự động điền bằng các lớp CSS hoặc ID đặc biệt. Các mã mà điền chúng ra là mã Scala thường xuyên mà trình biên dịch và IDE của bạn xác nhận đến mức độ đầy đủ, bao gồm cả loại an toàn. –

0

Tôi tin rằng mục tiêu của JXT bao gồm cả an toàn mô hình và an toàn kiểu XSS, và nó được thiết kế để dễ dàng chuyển đổi từ JSP.

Mô tả pipeline giải thích rằng biểu thức của chúng ánh xạ gần hơn với biểu thức Java, do đó bạn sẽ gặp phải lỗi loại Java-esque nếu biểu thức của bạn có loại không phù hợp.

+0

Vấn đề của OP là hỗ trợ công cụ để phân tích tĩnh, tái cấu trúc, hoàn thành mã, vv .. – irreputable

+0

@irreputable, tôi giải thích "Tôi đã tự hỏi liệu có cái gì an toàn hơn JSP ..." và "Sẽ có một số loại công nghệ templating tĩnh hơn ngoài kia ... "như yêu cầu các giải pháp thay thế cho JSP. Nếu bạn tin rằng tôi đang gặp lỗi, hãy yêu cầu người đăng ký làm rõ. –

2

Bạn có thể sử dụng gợi ý loại, ví dụ: type attribute trong jsp: useBean và trong khai báo thuộc tính của tệp thẻ JSP (và có thể ở các vị trí khác như thẻ JSTL). IntelliJ sau đó sẽ làm tất cả các công cụ dựa trên loại tĩnh tốt cho bạn (đề xuất hoàn thành mã chính xác, tái cấu trúc, tìm tập quán, hiển thị javadoc nhanh, v.v.).

Tôi vừa mới viết về điều này trong ngữ cảnh JSP tag files.

0

Chưa thực sự sử dụng, nhưng Twirl (https://www.playframework.com/documentation/2.5.x/JavaTemplates) tự gọi "một loại công cụ mẫu an toàn dựa trên Scala" (có thể được sử dụng trong Play cho Java).

Trích:

được trang bị két kiểu mẫu động cơ dựa trên Scala Chơi đi kèm với Twirl, một Scala dựa trên mẫu động cơ mạnh mẽ, có thiết kế được lấy cảm hứng từ ASP.NET Razor. Cụ thể là:

gọn nhẹ, biểu cảm và chất lỏng: giảm thiểu số lượng ký tự và tổ hợp phím được yêu cầu trong tệp và cho phép quy trình làm việc mã hóa nhanh, linh hoạt. Không giống như hầu hết các cú pháp mẫu, bạn không cần phải ngắt mã hóa của mình để biểu thị rõ ràng các khối máy chủ trong HTML của bạn. Trình phân tích cú pháp đủ thông minh để suy ra điều này từ mã của bạn. Điều này cho phép một cú pháp thực sự nhỏ gọn và biểu cảm, sạch sẽ, nhanh chóng và thú vị để nhập.

dễ học: nó cho phép bạn nhanh chóng trở nên hiệu quả, với tối thiểu các khái niệm. Bạn sử dụng các cấu trúc Scala đơn giản và tất cả các kỹ năng HTML hiện có của bạn.

không phải là ngôn ngữ mới: chúng tôi đã quyết định chọn không tạo ngôn ngữ mới. Thay vào đó, chúng tôi muốn cho phép các nhà phát triển Scala sử dụng các kỹ năng ngôn ngữ Scala hiện có của họ và cung cấp cú pháp đánh dấu mẫu cho phép tạo luồng công việc xây dựng HTML tuyệt vời.

có thể chỉnh sửa trong bất kỳ trình soạn thảo văn bản nào: nó không yêu cầu một công cụ cụ thể và cho phép bạn làm việc hiệu quả trong mọi trình soạn thảo văn bản thuần tuý cũ.

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