2010-01-20 29 views
5

Tôi đang yêu cầu một số ý kiến ​​về việc tham chiếu mã Java (trong trường hợp của tôi là một giá trị enum) trong một JSP.Thực hành tốt nhất để tham chiếu Java bên trong JSP của tôi

Tôi hiện có logic có điều kiện trong JSP của tôi như:

<c:if test="${actionBean.order.status eq 'complete'}">  
    show some stuff 
</c:if> 

Bây giờ, 'hoàn toàn' là một giá trị gắn liền với một enum trong codebase của tôi. Nó sẽ là tốt hơn để tham khảo enum bên trong JSP của tôi? Nếu vậy, làm thế nào?

Tôi nghĩ rằng nó có thể là một điều tốt bởi vì: Nếu enum thay đổi, thì JSP không phá vỡ.

Thực tiễn không hợp lệ để trộn mã Java vào các JSP không? Hoặc là nó tệ hơn để nhân đôi giá trị của 'hoàn thành'?

Xin cảm ơn trước.

Trả lời

1

Thực tiễn không tốt để trộn mã Java vào JSP? Hoặc là nó tệ hơn để nhân đôi giá trị của 'hoàn thành'?

Ý kiến ​​của tôi là bạn nên tránh trộn mã Java với JSP, ngay cả khi nó có nghĩa là một số trùng lặp giới hạn các ký hiệu/giá trị.

Hãy suy nghĩ theo cách này: có rất nhiều, nhiều thay đổi có thể được thực hiện ở phía Java có thể "phá vỡ" một JSP. Trong trường hợp này, ví dụ: tên của "actionBean", các phương thức getOrder() hoặc getStatus() có thể thay đổi. Hoặc getOrder() có thể trả về một số null hoặc một loại khác. Nếu bạn lo lắng về tất cả những thứ có thể thay đổi ở phía Java, bạn sẽ không sử dụng taglib.

0

Bạn không thể làm logic cho dù bạn có muốn "hiển thị một số nội dung" bên ngoài JSP và chỉ chuyển một tham số boolean đơn giản để cho biết có hiển thị nội dung không? Bằng cách đó bạn tránh sao chép giá trị enum và bạn cũng giữ cho bit của logic trong bộ điều khiển thay vì trong khung nhìn.

1

Giá trị enum mà bạn so sánh với trong JSP thực tế giống như String.valueOf(enum) và điều này theo mặc định chính xác tên enum. Vì vậy, nếu bạn thay đổi tên của enum, thì bạn cũng nên thay đổi mã JSP. Vì vậy, tôi không thấy bất kỳ lợi ích nào để so sánh với đối tượng enum thực tế enum. Nó cũng sẽ bị ép buộc là String với số String.valueOf(enum) và bạn sẽ có hiệu quả khi so sánh hai số String s với nhau. Chỉ cần giữ nó như nó được.

liên quan đến tham khảo mã Java trong một tập tin JSP Với:

Tất cả các mã Java đó là (in) tham chiếu trực tiếp trong HttpServlet có thể cố thêm:

  • Nếu bạn muốn lọc các yêu cầu/phản ứng, sử dụng một Filter class.
  • Nếu bạn muốn tương tác với cơ sở dữ liệu, hãy sử dụng DAO class.
  • Nếu bạn muốn lưu trữ/chuyển/truy cập dữ liệu, hãy sử dụng Javabean (DTO) class.
  • Nếu bạn muốn thực hiện logic nghiệp vụ, hãy sử dụng lớp Domain (BO) (xem xét mẫu chiến lược).
  • Nếu bạn muốn có/sử dụng các công cụ tĩnh có thể dùng lại, hãy sử dụng lớp Tiện ích (lớp cuối cùng, hàm tạo riêng).
Các vấn đề liên quan