我有下一个代码:
<li>
<h:form rendered="#{!loginController.session}">
<h3>Inicio de Sesión</h3>
<h:panelGrid columns="2" cellpadding="7">
<h:outputText value="Usuario: " />
<h:inputText id="loginname" value="#{loginController.loginname}" maxlength="16" />
<h:outputText value="Contraseña: " />
<h:inputSecret id="password" value="#{loginController.password}" maxlength="16"/>
<h:outputText value="" />
<h:commandButton value="Iniciar Sesión" action="#{loginController.CheckValidUser}" />
</h:panelGrid>
</h:form>
</li>
Run Code Online (Sandbox Code Playgroud)
但是当运行页面不呈现表单时,任何人都可以告诉我为什么?
如果您正在使用古老的JSF 1.0/1.1实现,那么您需要将HTML包装在<f:verbatim>标签中,如下所示:
<f:verbatim><li></f:verbatim>
<h:form rendered="#{!loginController.session}">
<f:verbatim><h3>Inicio de Sesión</h3></f:verbatim>
<h:panelGrid columns="2" cellpadding="7">
...
Run Code Online (Sandbox Code Playgroud)
否则,在所有JSF组件之前,它们将最终位于生成的文档的顶部.
如果您正在使用JSF 1.2或更新的实现,那么您应该能够在模板文本中编写纯HTML而不会出现问题,因为它们会在组件树中逐字逐句显示.表单未被呈现的唯一原因是LoginController#isSession()返回,true因为它的rendered属性依赖于它.
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |