2012-05-02 9 views
1

私はJSF Webプロジェクトを作成するためのチュートリアルに従いましたが、機能していません。<h : xxx>タグのすべてがfirefoxやgooglechromeなどのブラウザでは表示されません。JSF Webプロジェクト<h:xxx>タグinvisible

まず、あなたはindex.htmlにアクセスし、あなたの名前を入力してボタンを押します。 BeanはJSPとJSPの印刷 に自分の名前を送信 は、「あなたの名前を」ようこそ

が、言ったように、入力フィールドとボタンが、彼らは、ページコード内にあるが、その長さを手動で設定し、0PXです(insivibleある

新しい幅も機能していません)

Eclipseのグラフィカルなプレビューツールではすべてが正常に見えます。 :/

seen from eclipse

in google chrome

my index.html

<?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:f="http://java.sun.com/jsf/core"  
     xmlns:h="http://java.sun.com/jsf/html"> 

    <h:head> 
     <title>JSF 2.0 Hello World</title> 
    </h:head> 
    <h:body> 
     <h3>JSF 2.0 Hello World Example - hello.xhtml</h3> 
     <h:outputText value="test" /> 
     <h:form> 
      <h:inputText value="#{helloBean.name}"></h:inputText> 
      <h:commandButton value="Welcome Me" action="welcome"></h:commandButton> 
     </h:form> 
    </h:body> 
</html> 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" 
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-app_2_5.xsd"> 
<display-name>webApp</display-name> 
<!-- JSF mapping --> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<!-- Map these files with JSF --> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 
<!-- Welcome page --> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 
</web-app> 

私の豆:

pom.xmlあなたが

  • MyFacesの-APIを見つけることができます1.2.2
  • トマホーク1.1.9
  • MyFacesの-IMPLで

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
        pageEncoding="ISO-8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"  
         xmlns:h="http://java.sun.com/jsf/html"> 
    
        <h:head> 
         <title>JSF 2.0 Hello World</title> 
        </h:head> 
        <h:body bgcolor="white"> 
         <h3>JSF 2.0 Hello World Example - welcome.xhtml</h3> 
         <h4>Welcome #{helloBean.name}</h4> 
        </h:body> 
    </html> 
    

    1.2.2

  • :HTMLを結果
    package net.viralpatel.maven; 
    
    
    
    import javax.faces.bean.ManagedBean; 
    import javax.faces.bean.SessionScoped; 
    import java.io.Serializable; 
    
    @ManagedBean 
    @SessionScoped 
    public class HelloBean implements Serializable { 
    
        private static final long serialVersionUID = 1L; 
    
        private String name; 
    
        public String getName() { 
         return name; 
        } 
        public void setName(String name) { 
         this.name = name; 
        } 
    } 
    

  • jstl 1.1.2
  • taglib標準1.1.2
  • geronimo_servlet_2.5_spec 1.2
  • のjboss-JSF-api_2.0_spec

私はあなたのweb.xmlにTomcatの7サーバー

答えて

1

あなたの間違いはあなたがJSFビューファイルの拡張子.htmlの代わり.xhtmlを使用したことです。デフォルトのJSF接尾辞は.xhtmlです。

  1. ではなく、デフォルトの接尾辞として.htmlを使用するJSFに教える:

    は、この問題を解決するには2つの方法があります。

    <context-param> 
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
        <param-value>.html</param-value> 
    </context-param> 
    
  2. あるいは、index.xhtmlindex.htmlファイルの名前を変更し、それに応じてweb.xmlを修正:XHTMLを使用して

    <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> 
    <welcome-file-list> 
        <welcome-file>index.xhtml</welcome-file> 
    </welcome-file-list> 
    

は、IDEのツール(オートコンプリート、など)についてのより多くの利点があります。

+0

私はあなたのBalusCに従ってweb.xmlを修正しました。 THANKS = D なぜですか?私のマッピングが間違っていると、なぜ私はindex.htmlに送られましたか? – Eildosa

+1

あなたが ' 'にそうしたと言ったので。 – BalusC

0

を使用しています、このサーブレットマッピングはいけませんコメントする:

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 
+0

コメントは取り消されませんでした。無効な言語の強調表示(XMLではなくJava)の結果でした。 '/ *'は、Javaにおいてコメントの開始を示します。 – BalusC