Cú pháp gọi list.size() trong khuôn mẫu JSF 2.0 Facelets (ví dụ, sử dụng phần tử h: outputText) là gì?Làm thế nào để bạn gọi List.size() từ một khuôn mẫu JSF 2.0 Facelets?
Trả lời
Làm thế nào về điều này:
<h:outputText value="#{fn:length(someBean.someList)}" />
Bạn sẽ cần phải tham khảo các functions
taglib trong trang JSF của bạn (URI: http://java.sun.com/jsp/jstl/functions
).
Nó không phải là một vấn đề với JSF 2.0 chính xác. Đặc tả JSF vẫn yêu cầu một lớp phù hợp với đặc tả bean. Các lớp sưu tập không làm điều đó với phương thức .size()
. Nó vẫn sẽ là .getSize()
. Với sự cần thiết cho một cách "tiêu chuẩn" để truy cập các giá trị lớp, chúng tôi không nhận được xung quanh đó trong JSF bất cứ lúc nào sớm. Ai đó cần sửa các lớp thu.
IC ... Tôi đã hy vọng rằng họ đã làm lại cú pháp biểu thức để cho phép các cuộc gọi phương thức. Nó có thể bị lạm dụng, nhưng nó sẽ dễ dàng làm việc xung quanh các trường hợp như thế này. :) Tôi vẫn không hiểu tại sao nhà thiết kế lớp sưu tập lại chọn cách làm theo cách này. – jsight
Chỉ cần cố gắng #{myBean.myList.size()}
Lưu ý: Không gian tên chính xác cho "fn" được thêm vào như thế này:
<html xmlns="http://www.w3.org/1999/xhtml"
...
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
có thể trùng lặp: http://stackoverflow.com/questions/206161/jsf- danh sách dài – seth
@seth - Trong khi đó có chứa một câu trả lời hợp lý (mà nên làm việc với JSF 2.0, mặc dù câu trả lời có trước), tôi hỏi câu hỏi này đặc biệt để tìm hiểu xem có bất kỳ cập nhật nào cho JSF 2.0 có thể ảnh hưởng đến giải pháp. :) – jsight