dev@javaserverfaces.java.net

Spec Issue 419 - Make navigation rules more flexible

From: Freire, Jose Luis \(PT - Lisbon\) <"Freire,>
Date: Wed, 10 Sep 2008 11:26:28 +0100

Hi everyone!

 

Has anyone looked at the spec issue 419 (https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=419)?

 

The issue is about making the navigation rules more flexible, by allowing two wildcards in <from-view-id> (like */billing/*).

 

Copy-Paste for convenience:

Current navigation rules are limited to one wildcard, always at the end of the rule.

 

How hard would it be to allow more than one wildcard?

 

Complex applications always end up having a lot of the navigation rules assigned

to the /* (any) view as a workaround.

 

As an example, let's say I have my applications divided in 3 modules:

 

1) Clients (in the /clients folder)

2) Orders (in the /orders folder)

3) Billing (in the /billing folder)

 

In the Client area, I have a folder /clients/billing/, where I have all the

billing pages relating to the client.

In the Order area, I have a folder /order/billing/, where I have all the billing

pages relating to the order.

 

Currently, if I want to select an invoice in /clients/billing or /order/billing

and jump to /billing my navigation rule must be something called

"invoiceSelect", from "/*".

 

However, it would be cleaner if I made my "invoiceSelect" navigation rule

assigned "*/billing/*"

 

This request for enhancement might be questionable because we can always build

the application and organize its pages taking in account the navigation rules

limitations, however, if/when JavaServer Faces is considered to be used with

other technologies like OSGI or JSR-291 (Dynamic Component Support for Java) it

will become a real issue.

 

Let me elaborate, considering that my hypothetical application is divided in 3

modules:

 

1) Clients, that provides the /client folder

2) Orders, that provides the /order folder

3) Billing, that provides the /billing, /client/billing and /order/billing

 

The issue here is that the Client and the Order module don't know anything about

the billing module, so the navigation rules must be declared in the billing

module assigned to the view "/*".

 

Thank you,

 

Josť Freire
 
*Disclaimer:*
Deloitte refers to one or more of Deloitte Touche Tohmatsu, a Swiss Verein, its member firms, and their respective subsidiaries and affiliates. As a Swiss Verein (association), neither Deloitte Touche Tohmatsu nor any of its member firms has any liability for each other's acts or omissions. Each of the member firms is a separate and independent legal entity operating under the names "Deloitte," "Deloitte & Touche," "Deloitte Touche Tohmatsu," or other related names. Services are provided by the member firms or their subsidiaries or affiliates and not by the Deloitte Touche Tohmatsu Verein.
Privileged/Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. Please advise immediately if you or your employer do not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.