【问题标题】:Is there a way to run a JSF page without building the whole project?有没有办法在不构建整个项目的情况下运行 JSF 页面?
【发布时间】:2012-05-17 06:22:57
【问题描述】:

有没有办法只运行一个页面,以便我可以看到生成的 html(和 css),即使它本质上是非功能性的?独立的 JSF 页面。我想回顾一下我是如何设置表单的,以在实际为表单字段编码之前从用户的角度来看它们是否有意义。我正在使用 maven 和 netbeans,但不确定后者是否相关。

【问题讨论】:

    标签: java jsf testing


    【解决方案1】:

    如果您使用的是 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 &lt;ui:xxx&gt; 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>
    

    而且您可以使用&lt;ui:composition&gt; 来指定 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 运行时。

    【讨论】:

    • 知道必须有一种方法......它太大了一个洞不。谢谢。太糟糕了,没有更直接的方法,但我会尽我所能。 :)我猜一旦对 ui:composition 感到满意,就会将所需的部分剪切并粘贴到另一个文件中,或者更有可能删除 html 内容。是的?问候——BillR
    • 不客气。不,这没有必要。如果您将其用作&lt;ui:include&gt;&lt;my:customtag&gt;,则&lt;ui:composition&gt; 之外的任何内容都将在Facelets 编译期间被忽略。您可以将 HTML 设计“线框”保留在那里。
    【解决方案2】:

    JBoss Tools for Eclipse 在其可视化编辑器中基本支持 JSF-tags。

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

    【讨论】:

      【解决方案3】:

      如果不部署已构建的应用程序,您将无法直接执行 JSF 页面。您必须部署它,然后才能显示已执行的页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-28
        • 2010-10-04
        • 2014-02-20
        • 1970-01-01
        相关资源
        最近更新 更多