Hello,
I am using seam-faces 3.0.2
@ViewConfig
annotation. I configure my pretty faces with it.
However it seems that there are some limitations with it.
Example:
Lincoln has this example in his doc:
<url-mapping id="archives"> <pattern value="/#{ /\\d{4}/ year }/#{ /\\d{2}/ month }/" /> <view-id value="/faces/blog/archives.jsf" /> </url-mapping>
For urls such as '/blog/2010/12/'
And
<url-mapping id="viewAuthorPost"> <pattern value="/#{ /[a-z]+/ blogger }/#{ /\\d+/ postId }/" /> <view-id value="/faces/blog/viewPost.jsf"/> </url-mapping>
For urls such as
For urls such as '/blog/lincoln/23/'
In order for this to work we need to have two mappings with the same view-id.
That doesn't seem to be possible with seam-faces.
Here is why:
ViewConfigExtension has a map:
Map<String, Set<Annotation>> data= ... public <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event) { ... for (Class clazz : tp.getJavaClass().getClasses()) { for (Field enumm : clazz.getFields()) { ... Set<Annotation> viewPattern = new HashSet<Annotation>(); data.put(viewConfig.value(), viewPattern); } } }
So If you have two mappings in the
@ViewPattern
with the same value it seems that the field that is scanned last will overwrite all previous entries :( and thus effectively limit what prettfaces can do.