2012-05-08 34 views
17

Có cách nào để chỉ chạy một trang để tôi có thể thấy html được tạo ra (và css) vì nó sẽ xem xét cho người dùng ngay cả khi về bản chất là không hoạt động? Trang JSF độc lập như cũ. Tôi muốn xem lại cách tôi đang thiết lập biểu mẫu để xem liệu chúng có tạo thành ý nghĩa hình thức quan điểm của người dùng trước khi thực sự mã hóa cho các trường của biểu mẫu hay không. Tôi đang sử dụng maven và netbeans nhưng không chắc chắn nếu sau này là có liên quan.Có cách nào để chạy trang JSF mà không xây dựng toàn bộ dự án không?

Trả lời

26

Nếu bạn đang sử dụng JSF2 Facelets, thì bạn chỉ có thể thiết kế biểu mẫu của mình bằng HTML thuần túy và sử dụng thuộc tính jsfc để chỉ định thành phần JSF tương ứng sẽ được sử dụng trong thời gian chạy JSF. Ví dụ.

<form jsfc="h:form"> 
    <label jsfc="h:outputLabel" for="input1" /> 
    <input type="text" jsfc="h:inputText" id="input1" value="#{bean.input1}" required="true" /> 
    <span jsfc="h:message" for="input1" /> 
    <input type="submit" jsfc="h:commandButton" value="Submit" action="#{bean.submit}" /> 
</form> 

Đọc Facelets <ui:xxx> taglib documentation cũng nên cung cấp một số thông tin chi tiết. Ví dụ.

<span jsfc="ui:remove"> 
    This is present during design time, but is removed during JSF runtime. 
</span> 

<div jsfc="ui:repeat" value="#{bean.items}" var="item">#{item}</div> 

<table> 
    <tr jsfc="ui:repeat" value="#{bean.items}" var="item"> 
     <td>#{item.id}</td> 
     <td>#{item.name}</td> 
    </tr> 
</table> 

Và thực tế là bạn có thể sử dụng <ui:composition> để xác định điểm bắt đầu và kết thúc của một thành phần Facelet (ví dụ một bao gồm tập tin hoặc một tập tin thẻ). Bất kỳ nội dung bên ngoài sẽ được bỏ qua trong thời gian chạy, nhưng bạn vẫn có thể đặt một số HTML xung quanh trong designtime để bạn có thể dễ dàng xem trước thiết kế hoàn chỉnh trong đó bao gồm các tập tin hoặc thẻ tập tin được coi là một phần của.

<!DOCTYPE html> 
<html lang="en" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
> 
    <head> 
     ... 
    </head> 
    <body> 
     ... 
     <ui:composition> 
      Here you can design content of include file or 
      tag file as if it's part of the whole design. 
     </ui:composition> 
     ... 
    </body> 
</html> 

Tất cả điều này cho phép bạn xem trước thiết kế HTML/CSS mà không cần thời gian chạy JSF.

+0

Biết rằng phải có một cách ... nó quá lớn của một lỗ không. Cảm ơn. Quá tệ không có cách nào trực tiếp hơn, nhưng tôi sẽ lấy những gì tôi có thể nhận được. :) P.S. Tôi đoán rằng một khi đã hài lòng với thành phần ui: người ta sẽ cắt và dán phần mong muốn vào một tệp khác hoặc nhiều khả năng sẽ xóa nội dung html. Vâng? Trân trọng - BillR – BillR

+1

Bạn được chào đón. Không, không cần thiết. Nếu bạn sử dụng nó như ' 'hoặc' ', bất kỳ nội dung nào bên ngoài' 'sẽ bị bỏ qua trong quá trình biên dịch Facelets. Bạn chỉ có thể giữ thiết kế HTML "wireframe" ở đó. – BalusC

2

Bạn không thể thực thi trực tiếp trang JSF mà không làm hỏng ứng dụng xây dựng-ed. Bạn phải triển khai rằng chỉ có bạn mới có thể hiển thị trang thực thi.

1

Công cụ JBoss cho Eclipse có hỗ trợ sơ khởi cho các thẻ JSF trong trình chỉnh sửa trực quan của chúng.

Tôi đã chơi một thời gian ngắn với nó, nhưng nó không hỗ trợ đầy đủ các trang kế thừa của chúng tôi, vì vậy tôi đã để nó ở đó. Nó có thể hoạt động tốt hơn khi bắt đầu với một trang trống.

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