17

基本的に機能しない場合でも、生成された html (および css) をユーザーに表示するように、1 つのページを実行する方法はありますか? いわばスタンドアロンの JSF ページ。フォームのフィールドを実際にコーディングする前に、ユーザーの観点からフォームが意味をなすかどうかを確認するために、フォームの設定方法を確認したいと思います。私はmavenとnetbeansを使用していますが、後者が関連しているかどうかはわかりません。

4

3 に答える 3

28

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のドキュメントを読むと、いくつかの洞察も得られるはずです。例えば

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

これにより、JSFランタイムを必要とせずにHTML/CSSデザインをプレビューできます。

于 2012-05-08T19:04:23.227 に答える
2

ビルドされたアプリケーションをデプロイしないと、JSF ページを直接実行することはできません。それを展開する必要があります。そうして初めて、実行されたページを表示できます。

于 2012-05-08T18:23:28.910 に答える
2

JBoss Tools for Eclipse は、ビジュアル エディターで JSF タグを基本的にサポートしています。

ちょっと遊んでみましたが、従来のページを完全にはサポートしていなかったので、そのままにしておきました。空白のページから始めると、うまくいく場合があります。

于 2012-05-08T18:31:38.103 に答える