我使用JSF2.0 + Richfaces3.3.3在Netbeans6.9.1 + tomcat6.0.29JSF2.0 + RichFaces的3.3.3,JSP沒有發現錯誤
第一步創建簡單的項目:文件 - > NewProject +選擇JSF 2.0 +首選頁語言爲JSP
步驟2:JAR
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>
和faces-config.xml文件
<?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;
}
}
我的問題是:
部署後,我戰爭進入我的tomcat6.0.29,r取消我的申請。 當我點擊A4J:命令按鈕下面的錯誤發生
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
幫助我。在displayButtonAction方法
public String displayButtonAction() {
displayValue = username;
return null;
}
或返回類型爲Void
public void displayButtonAction() {
displayValue = username;
}
嗨Eelke,謝謝你的迴應。它爲我工作。我沒有在JSF1.2中爲a4j操作返回'null'值。爲什麼JSF2.0需要爲a4j:action返回空值。 Hele我。 – jackrobert 2012-01-16 01:41:36
在2.0中添加了結果可以直接命名視圖。所以結果的處理略有改變。 – Eelke 2012-01-16 20:26:40
謝謝埃爾克。謝謝你的解釋。還有一個疑問,我是新的(JSF 2.0 + Richfaces3.3.3)。在我上面的配置(web.xml,faces-config.xml)是正確的?或其他任何我想念的事? – jackrobert 2012-01-17 09:19:43