| Author |
Message |
|
|
Regarding debug page rendering, I've found this :
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=97431
Regards,
Jerome.
|
 |
|
|
Here is a workaround for the @RequestParameter bug:
1) Add this method to PersistentFacesServlet (taken from BlockingServlet) :
Code:
private Map convertParametersMap(Map parameters) {
Map convertedParameters = new HashMap(parameters);
Iterator iterator = convertedParameters.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String[] values = (String[]) entry.getValue();
if (values.length > 1) {
// convert the String[] to a List
entry.setValue(Arrays.asList(values));
} else if (values.length == 1) {
// convert the String[] to a String
entry.setValue(values[0]);
}
}
return convertedParameters;
}
2) In PersistentFacesServlet, replace :
Code:
copyRequestParameters(request.getParameterMap(),
facesContext
.getExternalContext().getRequestParameterMap());
by :
Code:
Map map = request.getParameterMap();
copyRequestParameters( map, facesContext.getExternalContext().getRequestParameterMap() );
if ( facesContext instanceof BridgeFacesContext ) {
BridgeFacesContext bridgeFacesContext = (BridgeFacesContext) facesContext;
BridgeExternalContext bridgeExternalContext = (BridgeExternalContext) bridgeFacesContext.getExternalContext();
bridgeExternalContext.populateRequestParameters( convertParametersMap( map ) );
}
I don't know if this patch is appropriate, but now, you should be able to use the @RequestParameter and Seam built-in debug page.
One issue remains: data tables inside debug.xhtml are not rendered. I am still investigating. Could someone at Icefaces help us ?
Regards,
Jerome.
|
 |
|
|
I forgot to mention that the @RequestParameter annotation is not supported when using conversation-scoped (stateful) session beans.
Regards,
Jerome.
|
 |
|
|
Hello,
I'm using Seam 1.1 and Icefaces 1.5.1 and I've noticed a few problems :
- Icefaces does not seem to support @RequestParameter. Each time I try to use this annotation, I get an exception in JBoss (sometimes it's a javax.faces.el.EvaluationException, sometimes "EJBNoSuchObjectException: Could not find Stateful bean" ...);
- Icefaces does not support the Seam Debug Page. I believe this is due to the component name (org.jboss.seam.debug.introspector) and Seam uses $ to indicate a qualified component name.
Are there workarounds for these 2 issues ?
Regards,
Jerome.
|
 |
|
|
Hi Philip,
Thank you but I had already tried that.
The problem here is that when I select another tab and then come back to the tab containing the iframe, its content is always refreshed: I lose the current view and I am sent back to the initial iframe view.
Is there a way to maintain iframe content ?
Basically, I'd like to use navigation rules inside a panelTab while maintaining Seam conversations. Using an iframe would allow me to achieve to some kind of dynamic includes for page subviews.
Regards,
Jerome.
|
 |
|
|
Hello,
Do you have any idea ?
I'd like to keep navigation rules, and possibly page flows, but how could I do that with Icefaces ? in a PanelTabSet ?
I really need an idea.
Regards,
Jerome.
|
 |
|
|
Hello,
I am using Icefaces 1.5 (with support for Seam) and Seam 1.1 CR1.
In order to support navigation rules and page flows inside a panelTabSet and support Seam conversations, would it be possible to use an iframe to render content in each tab ?
Like in the component showcase demo with the dynamic tab panel, but using an ice:outputText to render an iframe ?
Regards,
Jerome.
PS: I tried to use an <object> tag to conform to strict xhtml but that did not work inside a panelTab.
|
 |
|
|
Thank you Philip.
I will have to wait a little bit before I can apply your patch to BridgeExternalContext because for now I don't have access to the latest source code.
Do you know where I could find D2DSeamFaceletViewHandler.java so that I can rebuild Icefaces ?
Regards,
Jerome.
|
 |
|
|
Thank you Philip,
I've found out what could be the source of the problem: in BridgeExternalContext.java, method getRequestCookieMap()
always throws an UnsupportedOperationException(). The problem is that Seam built-in components might be using cookies to persist preferences (ie
<property name="cookieEnabled">true</property>).
Regards,
Jerome.
|
 |
|
|
Hello,
I am still testing Seam and Icefaces integration.
I am using Seam 1.1 (from CVS) and Icefaces 1.5 (bundled with the Seam/Icefaces booking application, including the D2DSeamFaceletViewHandler).
The Seam Debug Page is no longer available. I get the following error:
Code:
(...) rendered="#{org$jboss$seam$debug$introspector.attributes!=null}": Exception getting value of property a
ttributes of base of type : org.jboss.seam.debug.Introspector$$EnhancerByCGLIB$$5143f993
I believe it's caused by the way Seam uses a $ to indicate a qualified component name in a JSF expression. For instance, if you try to use this:
<component name="org.jboss.seam.theme.themeSelector">
<property name="availableThemes">
<value>default</value>
</property>
</component>
you will probably get this:
Code:
(...)Cannot get value for expression '#{org$jboss$seam$theme$theme}'
Is there a CVS/SVN repository available somewhere ?
Regards,
Jerome.
|
 |
|
|
Hello,
I am using Seam 1.1 Beta 2 (latest from CVS, running JBoss 4.0.5 with MyFaces 1.1.4) and Icefaces 1.5. I am using the Icefaces libraries bundled with the Seam/Icefaces integration example (the ones that come with D2DSeamFaceletViewHandler).
I have this:
Code:
<ice:dataTable id="someId" value="#{someList}" var="someData" rendered="#{someList.rowCount>0}"
sortColumn="#{myBean.columnSort}" sortAscending="#{myBean.ascendingSort}"
columnClasses="columnLeftAlign, columnLeftAlign, columnLeftAlign, columnLeftAlign, columnLeftAlign"
scrollable="#{myBean.scrollableListEnabled}" scrollHeight="#{myBean.scrollableListHeight}"
columnWidths="20%,20%,20%,20%,20%">
With columnWidths given in %, only datatable headers will be resized when maximizing browser window (or simply resizing). Datatable columns won't be resized.
Is this a known bug ? Is there a workaround ?
Regards,
Jerome.
PS: I am also using facelets.
|
 |
|
|
Hello,
I am using Seam 1.1 Beta 2 (latest from CVS, running JBoss 4.0.5 with MyFaces 1.1.4) and Icefaces 1.5. I am using the Icefaces libraries bundled with the Seam/Icefaces integration example (the ones that come with D2DSeamFaceletViewHandler).
In a datatable, I have a rowSelector and I am trying to bind a selectionListener to a stateful bean method like this:
<ice:rowSelector multiple="#{myBean.multipleSelectionEnabled}" value="#{dataTableList.selected}" selectionListener="#{myBean.rowSelectionListener}" />
But the rowSelectionListener is never called. As a matter of fact, it seems like the binding never occurs since I can put any value inside the selectionListener attribute.
Do you have any idea ? Is this a known bug ? Is there any workaround ?
Regards,
Jerome.
|
 |
|
|
Hi,
I faced the same issue when trying to bind a tabset to a Seam component (a simple java bean). A workaround was to copy the Icefaces libs in JBoss server lib directory.
Sam, you may be facing the same issue here (or similar).
Regards,
Jerome.
|
 |
|
|
Hello Sam,
It might be a classloader/"class visibility" issue.
Regards,
Jerome.
|
 |
|
|
Thank you Philip.
Did you know about the commandSortHeader/datatable/ %columnWidths bug ? Is there a workaround ?
Regards,
Jerome.
|
 |
|
|