导航规则未应用

时间:2016-03-27 07:16:10

标签: jsf navigation xhtml

我需要在表单提交后导航到不同的页面,具体取决于用户在逗号分隔的数字字段中输入的值。

以下是获取comsep值和提交按钮的代码:

      <h:inputText id="comsep" value="#{bean.comsep}" ></h:inputText>
      <h:commandButton value="Submit" action ="bean.func"></h:commandButton>

这就是bean:

    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ManagedProperty;

    @ManagedBean
    public class Bean 
    {
      public String comsep;

     public Bean()
    {
    }

     public String func()
     {
        double avg = calculate();
        if (avg == 10) 
            {   return "casea";   } 
        else 
            {   return "caseb";   }
     }

    public double calculate() 
       {
       String[] pos = comsep.split(",");
       double avg = 0;
       for (int i = 0; i < pos.length; i++)
       avg = avg + Integer.parseInt(pos[i]);
       avg = avg / pos.length;
       return avg;
       }


public String getComsep() {
    return comsep;
}

public void setComsep(String comsep) {
    this.comsep = comsep;
}

}

这是faces-config.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee          h  http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">

   <navigation-rule>
   <from-view-id>/Home.xhtml</from-view-id> 

   <navigation-case> 
   <from-action>#{bean.func}</from-action>
   <from-outcome>casea</from-outcome> 
   <to-view-id>/Page1.xhtml</to-view-id> 
   </navigation-case> 
   <navigation-case> 
   <from-action>#{bean.func}</from-action>
   <from-outcome>caseb</from-outcome> 
   <to-view-id>/Page2.xhtml</to-view-id> 
   </navigation-case> 
   </navigation-rule>
   </faces-config>

如果avg == 10 else page2,预期结果为page1,但这不会发生。当我点击提交时,没有任何反应,但home.xhtml会刷新。

我对JSF很新,对新手的错误感到抱歉,如果有的话。

1 个答案:

答案 0 :(得分:1)

action的{​​{1}}属性需要EL表达式而不是字符串才能从bean调用该方法:

commandButton

你可以放弃使用&#34; faces-config.xml&#34;您正在使用2.0 JSF版本或更新版本的文件。