2012-05-08 23 views
17

有沒有辦法只運行一個頁面,以便我可以看到生成的html(和css),因爲它看起來像用戶,即使它基本上是非功能性的?原來的獨立JSF頁面。我想回顧一下我如何設置表單,看看它們是否在實際編寫表單的字段之前從用戶的角度出發。我使用maven和netbeans,但不確定後者是否相關。有沒有辦法在不構建整個項目的情況下運行JSF頁面?

回答

26

如果您使用的是JSF2 Facelets,那麼您可以使用純HTML設計您的表單,並使用jsfc屬性來指定在JSF運行時期間應該使用的相應JSF組件。例如。

<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> 

閱讀Facelets <ui:xxx> taglib documentation也應該提供一些見解。例如。

<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> 

而事實上,可以使用<ui:composition>指定的facelet組合物的開始和結束(例如包含文件或標記文件)。外部的任何內容在運行時都會被忽略,但在設計時您仍然可以放置一些HTML,這樣您就可以輕鬆預覽包含文件或標籤文件應該包含的完整設計。

<!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> 

這一切都允許您預覽HTML/CSS設計而無需JSF運行時。

+0

知道必須有一種方法......它太大了一個洞不要。謝謝。太糟糕了,沒有更直接的方法,但我會拿我能得到的。 :) P.S.我猜想,一旦滿足ui:構圖,就會將所需的部分剪切並粘貼到另一個文件中,或者更可能刪除html內容。是?問候 - BillR – BillR

+1

不客氣。不,這不是必要的。如果您將它用作''或'',則在Facelets編譯過程中,<'之外的任何內容都將被忽略。您可以將HTML設計「線框」保留在那裏。 – BalusC

2

您不能直接執行JSF頁面而不會卸載構建的應用程序。你必須部署,然後只有你能夠顯示執行頁面。

1

JBoss Tools for Eclipse對其可視化編輯器中的JSF標籤有基本的支持。

我簡單地玩過它,但它並沒有完全支持我們的遺留頁面,所以我把它留在那裏。從空白頁開始時可能會更好。

相關問題