2012-01-14 5 views
1

私は JSF2.0 + RichFacesの3.3.3、見つからないJSPエラー

Netbeans6.9.1

にJSF2.0 + Richfaces3.3.3 + tomcat6.0.29を使用してステップ1簡単なプロジェクトを作成します。ファイル - > NewProject +選択JSF 2.0をJSP として+れる好ましいページ言語

ステップ2:

JSF2.0 jsf-api.jar 
JSF2.0 jsf-impl.jar 
JSTL1.1 - Standard.jar 
JSTL1.1 - jstl.jar 
jsf-facelets.jar (Facelets 1. 1. 15) 
richfaces-api-3.3.3.Final.jar 
richfaces-ui-3.3.3.Final.jar 
richfaces-impl-jsf2-3.3. 3.Final.jar 
commons-beanutils-1.8.3.jar 
commons-collections-3.2. 1.jar 
commons-digester-2.0.jar 
commons-logging-1.1.1.jar and hth-api-0.4.0.jar 

web.xmlファイルをジャー

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 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"> 

<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Production</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>/faces/*</url-pattern> 
</servlet-mapping> 
<context-param> 
    <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name> 
    <param-value>true</param-value> 
</context-param> 

<context-param> 
    <param-name>org.richfaces.SKIN</param-name> 
    <param-value>blueSky</param-value> 
</context-param> 


<!--Configuration for Richfaces--> 
<filter> 
    <display-name>RichFaces Filter</display-name> 
    <filter-name>richfaces</filter-name> 
    <filter-class>org.ajax4jsf.Filter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>richfaces</filter-name> 
    <servlet-name>Faces Servlet</servlet-name> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
</filter-mapping> 
<!--End of the configuration part for Richfaces--> 

<!--Configuration for Facelets--> 
<context-param> 
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
    <param-value>.jsp</param-value> 
</context-param> 
<context-param> 
    <param-name>facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE</param-name> 
    <param-value>false</param-value> 
</context-param> 
<context-param> 
    <param-name>facelets.VIEW_MAPPINGS</param-name> 
    <param-value>*.xhtml</param-value> 
</context-param> 
<context-param> 
    <param-name>facelets.SKIP_COMMENTS</param-name> 
    <param-value>true</param-value> 
</context-param> 
<!--End of the configuration part for Facelets--> 


<welcome-file-list> 
    <welcome-file>faces/welcomeJSF.jsp</welcome-file> 
</welcome-file-list> 
</web-app> 

と私の問題がある

<?xml version='1.0' encoding='UTF-8'?> 
<faces-config version="2.0" 
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"> 

<managed-bean> 
    <description>Managed Bean for HomeContent</description> 
    <managed-bean-name>Sample1</managed-bean-name> 
    <managed-bean-class>com.test.Sample1</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

</faces-config> 

welcomeJSF.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> 
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<f:view> 
<html> 
<head> 
    <title>JSP Page</title> 
</head> 
    <body> 
     <h:form id="sampleForm" binding="#{Sample1.initForm}">    

     <a4j:outputPanel id="sampleOutputPanel"> 

      <h:outputText value="UserName : "/> 
      <h:inputText value="#{Sample1.username}"/> 

      <a4j:commandButton value="Test" 
          reRender="sampleOutputPanel,output" 
          action="#{Sample1.displayButtonAction}"/> 

     <h:outputText id="output" 
     value="Typed username : #{Sample1.displayValue}"/> 
    </a4j:outputPanel> 
</rich:panel> 
</h:form></body> </html></f:view> 

とSample1.java

package com.test; 
import javax.faces.component.html.HtmlForm; 

public class Sample1 { 

    private HtmlForm initForm; 
    private String username; 
    private String displayValue; 

    public String displayButtonAction() { 
     displayValue = username; 
     return ""; 
    } 


    public HtmlForm getInitForm() { 
     username = ""; 
     return initForm; 
    } 


    public void setInitForm(HtmlForm initForm) { 
     this.initForm = initForm; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getDisplayValue() { 
     return displayValue; 
    } 

    public void setDisplayValue(String displayValue) { 
     this.displayValue = displayValue; 
    } 
} 

-config.xmlファイル直面している:

をした後、私を展開私のtomcat6.0.29、rへの戦争私のアプリケーション。次のエラーコマンドボタン

HTTP Status 404 - /.jsp not found 
type Status report 
message /.jsp not found 
description The requested resource (/.jsp not found) is not available. 
Apache Tomcat/6.0.29 

が私を助けて発生します。私はa4jをクリック 。 displayButtonAction方法

public String displayButtonAction() { 
    displayValue = username;   
    return null;  
} 

したり、アクションの戻り値は新しいビューを見つけるために使用される

public void displayButtonAction() { 
     displayValue = username;   

    } 

答えて

1

無効戻り値の型を使用してアクションメソッドを書き換えるに予め おかげで

+0

こんにちは、Eelke、ありがとうございました。それは私のために働いた。私はJSF1.2でa4jアクションのために 'null'値を返さなかった。 JSF2.0がa4j:actionにnull値を戻す必要がある理由私をよろこんでください。 – jackrobert

+0

2.0に、結果に直接ビューの名前を付けることが追加されました。したがって、結果の処理はわずかに変更されます。 – Eelke

+0

ありがとうEelke。あなたの説明をありがとう。もう1つの疑問は、私は(JSF 2.0 + Richfaces3.3.3)のための新しいものです。上記の設定(web.xml、faces-config.xml)は正しいですか?またはそれ以外のことを私がそれを見逃す何か??? – jackrobert

1

リターンはnull表示。 faces-configでそれにマッチするものを見つけたり、ページの名前として直接使用したりしてマッピングがない場合。空の文字列を返すと、ファイル名として.jspだけが返されます。同じページに戻る場合は、空の文字列の代わりにnullを返します。

+0

こんにちはNaveen、応答ありがとうございます。それは私のために働いた。しかし、既存のJSF1.2アプリケーションでは、どのa4jアクションに対しても 'null'値を戻しませんでした。 JSF2.0でa4jアクションの 'null'を返す理由はありますか – jackrobert

+0

Implict navigationはJSF2.0から導入されました。ページ名として "outcome"を扱います。たとえば、 "page1.xhtml"に移動すると、 「結果」を「ページ1」とします。しかし、JSF1.2ではimplictのナビゲーションがありませんでしたが、faces-config.xmlで一致(結果)を見つけることでナビゲートすることができました。 return ""のようなものは、JSF 1.2ではnullとしてハンドリングされましたが、JSF2.0ではnullになりました。 –

+0

Ok ..thanks Naveen。私は新しいJSF2.0 + richfaces3.3.3です。私の上記の構成で正しいかどうか?そうでなければ、他の設定がありませんか? – jackrobert

関連する問題