0

我使用richfaces 4。我从http://livedemo.exadel.com/richfaces-demo/richfaces/stateAPI.jsf?c=stateAPI举了一个例子。它在 liveemo 网站上运行良好。但对我来说它不起作用。我在 chrome 中看到(通过开发人员工具),当我单击 a4j:commandLink 时,没有对服务器的任何请求。我绝望地在互联网上找到答案。代码有什么问题?

<!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"> 

<h:head></h:head> 
<h:body>

    <center>
    <rich:panel style="width:320px;" id="panel">
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="Login"/>
                <a4j:commandLink action="#{userBean.doSwitch}" value="(to register)" immediate="true" 
                    render="panel"  />
            </h:panelGroup>
        </f:facet>

        <rich:message for="action"/>

        <h:panelGrid columns="3"  columnClasses="col1,col2">
            <h:outputText value="username"/>
            <h:inputText value="#{userBean.login}" id="login" required="true">
                <f:validateLength minimum="3" maximum="30"/>
            </h:inputText>
            <rich:message for="login" showSummary="false"/>
                <h:outputText value="password"/>
                <h:inputSecret value="#{userBean.password}" id="password" required="true">
                    <f:validateLength minimum="5" maximum="30"/>
                </h:inputSecret>
                <rich:message for="password"/>
            <h:outputText value="confirm" rendered="#{userBean.state}"/>
            <h:inputSecret value="#{userBean.passwordConfirmation}" 
                    rendered="#{userBean.state}" id="passwordConfirmation" required="true">
                <f:validateLength minimum="5" maximum="30"/>
            </h:inputSecret>
            <rich:message for="passwordConfirmation"/>
        </h:panelGrid>

        <a4j:commandButton action="#{userBean.doLogin}" rendered="#{!userBean.state}" value="login" id="actionL"/>
        <a4j:commandButton action="#{userBean.doRegister}" rendered="#{userBean.state}" value="register" id="actionR"/>

    </rich:panel>
    </center>

</h:body>
</html>

和托管豆

@ManagedBean
@SessionScoped
public class UserBean {

    private String login;
    private String password;
    private String passwordConfirmation; 
    private boolean state; 

    public UserBean() {
        super();
        this.state = false;
    } 

    public boolean isState() {
        return state;
    }

    public void setState(boolean state) {
        this.state = state;
    } 

    public String doSwitch(){
        this.setState(true);
        return "loginss";
    }

    public String doLogin() {
        return "done";
    }

    public String doRegister() {

我使用库:

richfaces-core-impl-4.3.1.Final richfaces-core-api-4.3.1.Final richfaces-components-ui-4.3.1.Final richfaces-components-api-4.3.1.Final sac-1.3 javax.faces -2.1.7 番石榴-14.0.1 cssparser-0.9.7

当我按下 a4j:commandlink 时,我的 Eclipse 中没有任何错误消息。还有我的 web.xml

<welcome-file-list>
    <welcome-file>/faces/register.xhtml</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>FacesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

  <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>facelets.DEVELOPMENT</param-name>

  <param-value>true</param-value>

 </context-param>

 <context-param>

  <param-name>facelets.SKIP_COMMENTS</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>

 <context-param>

  <param-name>org.richfaces.SKIN</param-name>

  <param-value>glassX</param-value>

 </context-param>

 <filter>

  <display-name>Ajax4jsf Filter</display-name>

  <filter-name>ajax4jsf</filter-name>

  <filter-class>org.ajax4jsf.Filter</filter-class>

 </filter>
4

0 回答 0