如何使用jsf的prettyface

时间:2014-05-27 12:31:50

标签: jsf primefaces prettyfaces

我想要重写我项目的URL。

我正在使用primefaces。我的XHTML文件如下所示

<ui:composition template="/html/Template.xhtml">
    <ui:define name="content">
          <h:form id="frmId">
             <p:inputtext value=#{bean.ajavaclass.variable} />
             <p:commandbutton value="check" action=#{bean.ajavaclass.fun1}/>               
           </h:form>
   </ui:define>
</ui:composition>

我的sessionscoped bean类

public class Bean implements Serializable{
 private AJavaClass ajavaclass=new AJavaClass();

getter and setter of ajavaclass obj...

}

我的AJavaclass

public class AJavaClass implements Serializable{

      private String variable;

      public void fun1(){
        if(variable.equals('CODE')){
          fun2();
      }

    public void fun2(){

          FacesContext.getCurrentInstance().getExternalContext()
                        .redirect("./page2.xhtml");
      }

    }

这很好用。如果用户在文本框中输入CODE,则重定向到page2.xhtml。 但网址为http://localhost:8080/projectname/page2.xhtml

我想隐藏网址中的网页名称。如何使用漂亮的面孔来做到这一点。

我可能错误地配置了pretty-config.xml,这是我的配置

<url-mapping id="CODE">
        <pattern value="/" />
        <view-id value="page2.xhtml" />
</url-mapping>

但我需要知道 我需要从fun2返回什么? 2.fun2是不是直接处理动作操作是一个问题,如果是我怎么处理。 3.或者没有漂亮在jsf或primefaces有什么方法吗?

1 个答案:

答案 0 :(得分:0)

您可能只需要在view-id中使用前导斜杠:

<url-mapping id="CODE">
    <pattern value="/" />
    <view-id value="/page2.xhtml" />
</url-mapping>

将无法理解使用page2.xhtml的view-id值。必须是/page2.xhtml