Need help with Navigation

Splash Forums PrettyFaces Users Need help with Navigation

This topic contains 14 replies, has 2 voices, and was last updated by  Andreu 1 year, 6 months ago.

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #26544

    Andreu
    Participant

    Good day!
    Have a problem with navigation.

    1st page index.xhtml. On this page i show all categories from database.

            <h:form id="form">
                <p:dataGrid var="category" value="#{navigationController.categories}" columns="4" layout="grid"
                            rows="16" id="cars">
                    <f:facet name="header">
                        Cars for Sale
                    </f:facet>
                    <p:commandLink action="pretty:viewCategory">
                        <p:panel header="#{category.id}" style="text-align:center">
                            <h:panelGrid columns="1" style="width:100%">
                                <p:graphicImage library="indexImages" name="#{category.imageName}"/> 
                                <h:outputText value="#{category.categoryName}" />
                            </h:panelGrid>
                        </p:panel>
                        <f:param name="pageName" value="#{category.categoryName}" />
                    </p:commandLink>
                </p:dataGrid>
            </h:form>

    pretty-config.xml

        <url-mapping id="home">
            <pattern value="/" />
            <view-id value="/faces/index.xhtml" />
        </url-mapping>
        
        <url-mapping id="viewCategory">
            <pattern value="/#{category.categoryName}"/>
            <view-id value="/faces/somethingList.xhtml"/>
        </url-mapping>

    At page somethingList.xhtml want to show products of the respective category

    When commandLink clicked i have error

    FATAL:   JSF1072: com.ocpsoft.pretty.PrettyException caught during afterPhase() processing of RESTORE_VIEW 1 : UIComponent-ClientId=, Message=PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    FATAL:   PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    com.ocpsoft.pretty.PrettyException: PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    
    Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'category' resolved to null

    How to make the right?

    #26548

    You should not use a commandButton just for navigation. You should use h:link instead. The creates a standard HTML link which works much better for navigation.

    Change your configuration to this:

    <url-mapping id="viewCategory">
      <pattern value="/#{ category : category.categoryName }"/>
      <view-id value="/faces/somethingList.xhtml"/>
    </url-mapping>
    

    And use a standard h:link like this:

    <h:link outcome="/faces/somethingList.xhtml">
      <f:param name="category" value="#{category.categoryName}"/>
      Click
    </h:link>
    
    #26550

    Andreu
    Participant

    Christian, i copy your code, but have the same error

    FATAL:   JSF1072: com.ocpsoft.pretty.PrettyException caught during afterPhase() processing of RESTORE_VIEW 1 : UIComponent-ClientId=, Message=PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    FATAL:   PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    com.ocpsoft.pretty.PrettyException: PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    
    Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'category' resolved to null
    #26553

    Could you please post the relevant xhtml fragment and the full stacktrace?

    #26569

    Andreu
    Participant

    Here index.xhtml and pretty-config.xml

    https://drive.google.com/file/d/0BzjDxhTLruPjVlBBQTJqRmRNWGc/view?usp=sharing
    https://drive.google.com/file/d/0BzjDxhTLruPjYmQyb3QyWmNNeUU/view?usp=sharing

    On page 3 different variant references, but all show the same error

    glassfish.log

    FATAL:   JSF1072: com.ocpsoft.pretty.PrettyException caught during afterPhase() processing of RESTORE_VIEW 1 : UIComponent-ClientId=, Message=PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    FATAL:   PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    com.ocpsoft.pretty.PrettyException: PrettyFaces: Exception occurred while processing <viewCategory:#{category.categoryName}> for URL </car>
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectPathParams(ParameterInjector.java:96)
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectParameters(ParameterInjector.java:54)
    	at com.ocpsoft.pretty.faces.event.PrettyPhaseListener.afterPhase(PrettyPhaseListener.java:102)
    	at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
    	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:873)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:575)
    	at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:546)
    	at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:428)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:378)
    	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:137)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'category' resolved to null
    	at com.sun.el.parser.AstValue.getTarget(AstValue.java:174)
    	at com.sun.el.parser.AstValue.getType(AstValue.java:86)
    	at com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:201)
    	at com.ocpsoft.pretty.faces.util.FacesElUtils.getExpectedType(FacesElUtils.java:50)
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectPathParams(ParameterInjector.java:79)
    	... 48 more

    I want to build the right application architecture with three pages:
    1 page) index.xhtml – displays all categories of products that contain links to the second page;
    2 page) somethingList.xhtml – displays a list of the specific category of products that contain links to the third page;
    3 page)product.xhtml – displays the product of interest.

    When client click the button on first page URL must change and show selected category, but PrettyFaces say that param “null”, maybe it because PrettyFaces first filter that’s why don’t see a param, but what to do i don’t know.

    • This reply was modified 1 year, 8 months ago by  Andreu.
    #26574

    The problem is this:

    <pattern value="/#{category.categoryName}"/>

    Looks like there is no bean named category available in your app. This EL expression must point to a valid managed bean property. Something like #{categoryDetailsBean.categoryName}.

    #26579

    Andreu
    Participant

    Thanks, Christian!

    #26632

    Andreu
    Participant

    Good day!
    Now have another problem 🙂
    One of pages don’t do URL rewriting and don’t see a parameter.

    pretty-config.xml

    First page – list categories (View)
    First page – list categories (Code)

    Second page – list products (View)
    Second page – list products (Code)

    Problem on Third page
    Third page – product page (View)
    Third page – product page (Code)
    in URL must be
    /shop/car/1 and productBean.id = 1
    but have
    /shop/faces/product.xhtml?product=1 and productBean.id = null

    if change configuration like this
    pretty-config.xml
    or this
    pretty-config.xml

    Third page have normal URL and parameters

    Why don’t work and what change to have URL – /shop/car/1?

    • This reply was modified 1 year, 7 months ago by  Andreu.
    • This reply was modified 1 year, 7 months ago by  Andreu.
    #26637

    The code links you provided don’t seem to work. Could you please post the relevant parts directly into the forums? And please tell us where the url doesn’t change. Is the link rendered to the page not correct?

    #26644

    Andreu
    Participant

    Good day! Update links (now google disk) and add code on post.
    Now have another problem 🙂
    One of pages don’t do URL rewriting and don’t see a parameter.

    pretty-config.xml

        <url-mapping id="home">
            <pattern value="" />
            <view-id value="/faces/index.xhtml" />
        </url-mapping>
        
        <url-mapping parentId="home" id="viewCategory">
            <pattern value="/#{ category : categoryBean.categoryName }"/>
            <view-id value="/faces/somethingList.xhtml"/>
        </url-mapping>
        
        <url-mapping  parentId="viewCategory" id="viewProduct">
            <pattern value="/#{ product : productBean.id }/"/>
            <view-id value="/faces/product.xhtml"/>
        </url-mapping>

    First page – list categories (View)
    First page – list categories (Code)

            <h:form>
                <p:dataGrid var="category" value="#{categoryController.categories}" columns="4" layout="grid"
                            rows="16" id="cars">
                    <f:facet name="header">
                        CATEGORIES
                    </f:facet>
                    <h:link outcome="somethingList">
                        <p:panel header="#{category.id}" style="text-align:center">
                            <h:panelGrid columns="1" style="width:100%">
                                <h:outputText value="#{category.categoryName}" />
                            </h:panelGrid>
                        </p:panel>
                        <f:param name="category" value="#{category.categoryName}" />
                    </h:link>
                </p:dataGrid>
            </h:form>

    Second page – list products (View)
    Second page – list products (Code)

            <h:form>
                <p:dataGrid var="product" value="#{productController.getProductsByCategory(categoryBean.categoryName)}" columns="4" layout="grid"
                            rows="16" id="cars">
                    <f:facet name="header">
                        PRODUCTS
                    </f:facet>
                    <h:link outcome="product">
                        <p:panel header="#{product.id}" style="text-align:center">
                            <h:panelGrid columns="1" style="width:100%">
                                <h:outputText value="#{product.autoMark}" />
                            </h:panelGrid>
                        </p:panel>
                        <f:param name="product" value="#{product.id}" />
                    </h:link>
                </p:dataGrid>
                <h:outputFormat value="Hello from SomethingList categoryName = {0}.">
                    <f:param value="#{categoryBean.categoryName}" />
                </h:outputFormat>
            </h:form>

    Problem on Third page
    Third page – product page (View)
    Third page – product page (Code)

        <h:body>
            <h:outputFormat value="Hello from Product id = {0}. categoryName = {1}">
                <f:param value="#{productBean.id}" />
                <f:param value="#{categoryBean.categoryName}" />
            </h:outputFormat>
        </h:body>

    in URL must be
    /shop/car/1 and productBean.id = 1
    but have
    /shop/faces/product.xhtml?product=1 and productBean.id = null

    if change configuration like this
    pretty-config.xml

        <url-mapping  parentId="home" id="viewProduct">
            <pattern value="/#{ product : productBean.id }/"/>
            <view-id value="/faces/product.xhtml"/>
        </url-mapping>

    or this

    pretty-config.xml

        <url-mapping id="viewProduct">
            <pattern value="/#{ product : productBean.id }/"/>
            <view-id value="/faces/product.xhtml"/>
        </url-mapping>

    Third page have normal URL and parameters

    Why don’t work and what change to have URL – /shop/car/1?

    • This reply was modified 1 year, 7 months ago by  Andreu.
    • This reply was modified 1 year, 7 months ago by  Andreu.
    #26647

    Your URL patterns overlap. That’s not a good idea:

    
        <url-mapping parentId="home" id="viewCategory">
            <pattern value="/#{ category : categoryBean.categoryName }"/>
            <view-id value="/faces/somethingList.xhtml"/>
        </url-mapping>
        
        <url-mapping  parentId="viewCategory" id="viewProduct">
            <pattern value="/#{ product : productBean.id }/"/>
            <view-id value="/faces/product.xhtml"/>
        </url-mapping>
    

    For an incoming request like /foobar, how should PrettyFaces know which of the two mappings to use? Currently PrettyFaces will always choose the first one. You should change both by adding a prefix. Something like:

    
        <url-mapping parentId="home" id="viewCategory">
            <pattern value="/category/#{ category : categoryBean.categoryName }"/>
            <view-id value="/faces/somethingList.xhtml"/>
        </url-mapping>
        
        <url-mapping  parentId="viewCategory" id="viewProduct">
            <pattern value="/product/#{ product : productBean.id }/"/>
            <view-id value="/faces/product.xhtml"/>
        </url-mapping>
    
    #26653

    Andreu
    Participant

    Thanks for help, Christian!

    Problem was on second page, i add
    <f:param name="category" value="#{categoryBean.categoryName}" />
    and have URL.

    #26715

    Andreu
    Participant

    Incidentally I removed part of the project, now navigation again doesn’t work, and don’t know why =/

    index.xhtml – PrimeFaces element rendered list of categories.

            <h:form id="categories">
                <p:dataGrid var="category" value="#{categoryController.categories}" columns="4" layout="grid"
                            rows="16" id="cars">
                    <f:facet name="header">
                        CATEGORIES
                    </f:facet>
                    <h:link outcome="somethingList">
                        <p:panel header="#{category.id}" style="text-align:center">
                            <h:panelGrid columns="1" style="width:100%">
                                <p:graphicImage library="indexImages" name="#{category.imageName}"/> 
                                <h:outputText value="#{category.description}" />
                            </h:panelGrid>
                        </p:panel>
                        <f:param name="category" value="#{category.categoryName}" />
                    </h:link>
                </p:dataGrid>
            </h:form>

    pretty-config.xml

        <url-mapping id="home">
            <pattern value="" />
            <view-id value="/faces/index.xhtml" />
        </url-mapping>
        
        <url-mapping parentId="home" id="viewCategory">
            <pattern value="/#{ category : categoryBean.categoryName }"/>
            <view-id value="/faces/somethingList.xhtml"/>
        </url-mapping>

    but have error

    FATAL:   JSF1072: com.ocpsoft.pretty.PrettyException caught during afterPhase() processing of RESTORE_VIEW 1 : UIComponent-ClientId=, Message=PrettyFaces: Exception occurred while processing <viewCategory:#{categoryBean.categoryName}> for URL </car>
    FATAL:   PrettyFaces: Exception occurred while processing <viewCategory:#{categoryBean.categoryName}> for URL </car>
    com.ocpsoft.pretty.PrettyException: PrettyFaces: Exception occurred while processing <viewCategory:#{categoryBean.categoryName}> for URL </car>
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectPathParams(ParameterInjector.java:96)
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectParameters(ParameterInjector.java:54)
    	at com.ocpsoft.pretty.faces.event.PrettyPhaseListener.afterPhase(PrettyPhaseListener.java:102)
    	at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
    	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:873)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:575)
    	at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:546)
    	at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:428)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:378)
    	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:137)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.NullPointerException
    	at autocomplete.PlayerConverter.getAsObject(PlayerConverter.java:29)
    	at com.ocpsoft.pretty.faces.beans.ParameterInjector.injectPathParams(ParameterInjector.java:85)
    	... 48 more

    Categories renderdered by MVC – have class Category, in DaoImpl add information from db to category Objects and show they on page with PF dataGrid. Create CDI CategoryBean for PrettyFaces and connect category Object with CategoryBean on page by <f:param> and pretty-config.xml.
    Try different variants of solution, but don’t know how Pretty work inside and why show NullPointer Exection.
    Please, tell me, what wrong, help undestand how Pretty work and do correct navigation.

    • This reply was modified 1 year, 7 months ago by  Andreu.
    • This reply was modified 1 year, 7 months ago by  Andreu.
    • This reply was modified 1 year, 7 months ago by  Andreu.
    #26720

    Andreu
    Participant

    Look example on GitHub – rewrite-showcase-bookstore, but can’t find pretty-config.xml to understand how it’s work =/

    #26722

    Andreu
    Participant

    Problem was not in PrettyFaces, after deleting part of project something broken and i do not find what now work.

Viewing 15 posts - 1 through 15 (of 15 total)

You must be logged in to reply to this topic.

Comments are closed.