2012-03-27 6 views
0

Я использую JSF с richfaces3.3.3, другими Jsf возможности работать, но я не знаю, почему Ajax не работает, напримерJSF с RichFaces 3, Ajax4jsf не работает

Ниже кнопка Аякса команды, которая не делает дают погрешность не генерировать ошибки

<a4j:commandButton value="Say Hello" render="out"/> 

может быть это связано с ajax4sf фильтр, но у меня есть фильтр, почему он не мог поймать Jsf запрос?

Нужен ли мне интерфейс для работы с ajax4jsf?

Ниже представлен мой 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"> 
    <description>Sample application</description> 
    <display-name>richfaces-start</display-name> 

     <context-param> 
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
     <param-value>.xhtml</param-value> 
    </context-param> 

    <context-param> 
     <param-name>facelets.REFRESH_PERIOD</param-name> 
     <param-value>2</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
     <param-value>server</param-value> 
    </context-param> 
    <context-param> 
     <param-name>org.richfaces.SKIN</param-name> 
     <param-value>blueSky</param-value> 
    </context-param> 

    <filter> 
     <display-name>Ajax4jsf Filter</display-name> 
     <filter-name>ajax4jsf</filter-name> 
     <filter-class>org.ajax4jsf.Filter</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>ajax4jsf</filter-name> 
     <servlet-name>Faces Servlet</servlet-name> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
    </filter-mapping> 

    <listener> 
     <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener> 


    <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>*.jsf</url-pattern> 
    </servlet-mapping> 
    <login-config> 
     <auth-method>BASIC</auth-method> 
    </login-config> 

    </web-app> 
------------ 
start.xhtml 
------------ 

<!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:a4j="http://richfaces.org/a4j" 
     xmlns:rich="http://richfaces.org/rich" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 

    <head><title>RichFaces</title></head> 

    <body> 

    <rich:panel header="RichFaces"> 
     <h:outputText value="Hello, looks like it's working" /> 
    </rich:panel> 


    <h:form> 
     <h:panelGrid columns="3"> 
      <h:outputText value="Name:" /> 
      <h:inputText value="#{userBean.name}" /> 
      <a4j:commandButton value="Say Hello" render="out"/> 
     </h:panelGrid> 
    </h:form> 
    <br /> 

    <a4j:outputPanel id="out"> 
     <h:outputText value="Hello #{userBean.name} !" 
      rendered="#{not empty userBean.name}" styleClass="outhello" /> 
    </a4j:outputPanel> 
    </body> 
</html> 

ответ

0


В RichFaces 3.3.3, a4j: commanButton не имеет атрибут "визуализации". Вместо этого у него есть «reRender». Измените свой атрибут, и он должен работать.

Смежные вопросы