一个滑的JSF语法错误

时间:2013-08-07 13:19:53

标签: eclipse jsf-2

如果我尝试使用:

在Tomcat 7.0.34上显示JSF 2页面
  • jsf-api / impl 2.1.7
  • el-api 2.5
  • jstl 1.2
像这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:fn="http://java.sun.com/jsp/jstl/functions"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui"
  xmlns:cis="http://java.sun.com/jsf/composite/comp">

<h:head>
  <title>Prova errore di sintassi</title>
</h:head>
<h:body>
  <f:view>
    <ui:include src="/WEB-INF/include/menubar.xhtml" />
    <h:form>
      <p:ajaxStatus style="width: 32px;height: 32px;" />
      <p:growl />
      <p:panel id="pannello">
    <p:focus />
    <p:messages
      showDetail="true"
      globalOnly="true" />
    <h:panelGrid columns="3">
      <p:outputLabel
        for="ckpensionat2"
        value="Pens2"
        title="tit x pens2"
        style="padding-right: 3px;  display: inline-block; min-width: 60px;" />
      <p:selectBooleanCheckbox
        id="ckpensionat2"
        value="#{miocomp.pensionato}"
        title="tit x pens2"
        valueChangeListener="#{miocomp.pensCambiato}" />
      </p:selectBooleanCheckbox>
      <h:outputLabel  value="pippo" />
      </h:outputLabel>
      <p:message for="ckpensionat2" />
      <p:commandButton
        value="agg"
        update="pannello" />
    </h:panelGrid>
      </p:panel>
    </h:form>
  </f:view>
</h:body>
</html>

什么都没有显示! 请注意双关闭标签的错误

 .../>
 </p:selectBooleanCheckbox>
 <h:outputLabel  value="pippo" />
 </h:outputLabel>

我的问题是:

  1. 为什么</h:outputLabel>被证明是Eclipse上的语法错误而</p:selectBooleanCheckbox>不是
  2. 当我尝试显示此页面时,我得到一个空白页面。如果我删除错误一切顺利。
  3. 我的日志视图中没有任何错误出现在tomcat 7 log dir
  4. 提前感谢任何建议

1 个答案:

答案 0 :(得分:1)

  1. 这是语法错误(无效的XML),因为在<h:outputLabel value="pippo" /> </h:outputLabel>中您关闭了标记两次;一次使用/>结束标记,其次使用</h:outputLabel>元素。此外,p:selectBooleanCheckbox没有title属性。我很确定IDE因为这些错误而无法验证文档的其余部分,所以它只会抱怨第一个。
  2. 那是正常的......
  3. 我认为您应该提高日志级别或将javax.faces.PROJECT_STAGE参数更改为应用的web.xml中的Development