17

有没有办法只运行一个页面,这样我就可以看到生成的 html(和 css),即使它本质上是非功能性的,用户也会看到它?独立的 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-tags。

我简单地玩了一下它,但它不完全支持我们的旧页面,所以我把它留在了那里。从空白页开始可能会更好。

于 2012-05-08T18:31:38.103 回答