4

私はjsfの初心者です。私はMavenプロジェクトを持っており、それはwebsphere8で実行されます。jsfとrichfacesを使用しています。このエラーが発生します:

Error Parsing /viewMetadata/index.xhtml: Error Traced[line: 2] The element type "html" must be terminated by the matching end-tagend with '>'. 

faces-config.xmlは次のようになります:(それはleerです。私は現在managedbeanを持っていません)

<?xml version="1.0" encoding="UTF-8"?>

<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">


</faces-config>

web.xmlは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>My project</display-name>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>blueSky</param-value>
  </context-param>
  <context-param>
    <param-name>org.richfaces.enableControlSkinning</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>
  <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  </listener>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>    
  </servlet-mapping>  
</web-app>

そして最後に私の最初のjsfページ..(index.xhtml)

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
<h:head>
    <title>RichFaces Greeter</title>
</h:head>
<h:body>
    <f:view>
        <h:form>
            <rich:panel header="RichFaces Greeter 5" style="width: 315px">
                <rich:inputNumberSlider minValue="1" maxValue="100"
                    showInput="false" />
                <rich:inputNumberSpinner minValue="1" maxValue="100" />
                <rich:calendar id="date" value="#{bean.dateTest}"
                    oncurrentdateselect="if (!confirm('Are you sure to change month(year)?')){return false;}"
                    oncurrentdateselected="alert('month(year) select:'+event.rich.date.toString());" />


            </rich:panel>

        </h:form>
    </f:view>
</h:body>
</html>

私のPOM.xmlは次のようになります:(いくつかのライブラリが不足している可能性がありますか??)

<dependencies>
        <dependency>
            <groupId>org.richfaces</groupId>
            <artifactId>richfaces-bom</artifactId>
            <type>pom</type>
            <version>4.2.2.Final</version>
        </dependency>   

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.0.2</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>MyWeb</finalName>
    </build>
</project>
4

2 に答える 2

2

POM.xmlから、mojarraJSF実装を使用していると判断します。ただし、web.xmlは部分的にApache MyFacesを参照しています(MojarraはJSFのリファレンス実装であり、MyFacesはApache Foundationによる競合する実装です)。クロサギに固執しましょう。だからリスナーを失います。次に、JSFページの処理を担当するJSFサーブレットの宣言が欠落しているため、追加する必要があります。提案された変更を含むweb.xmlは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>GEm project</display-name>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
    <param-name>org.richfaces.skin</param-name>
    <param-value>blueSky</param-value>
  </context-param>
  <context-param>
    <param-name>org.richfaces.enableControlSkinning</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
  </context-param>

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>    
  </servlet-mapping>
</web-app>
于 2012-08-09T16:49:55.557 に答える
0

エラーはそれがindex.xhtmlにあることを示しています。なぜあなたは他の場所を探しているのですか?タグが属していない場所にタグを追加すると、ページの解析が混乱する場合があります。すべてのタグが正しい/意図された場所で適切に閉じられていることを確認してください。つまり、すべての<xyz>タグに対応する</ xyz>タグがあるか、終了タグが不要な場合は<xyz />で作成されます(「z」と「/」の間のスペースに注意してください)。これはHTMLではなくXHTMLです。すべてのタグを適切に閉じる必要があります。HTMLのように寛容ではありません。そして、終了タグが正しい場所にあることを確認してください。

于 2012-08-12T19:07:32.977 に答える