Re: JSF selectMany Tag problem
Hi, sorry but I forgott to post the Select bean class. package jsf.beans; import javax.faces.model.SelectItem; public class Select extends SelectItem { private String team1; private String team2; private String team3; public Select(String v,String l){ super(v,l); } public String getTeam1() { return team1; } public void setTeam1(String team1) { this.team1 = team1; } public String getTeam2() { return team2; } public void setTeam2(String team2) { this.team2 = team2; } public String getTeam3() { return team3; } public void setTeam3(String team3) { this.team3 = team3; } } As you can see this class extends from SelectItem class so theoretically i have implemented a List of SelectedItems. Thanks. Mike Kienenberger wrote: That's a new way (to me) to initialize a selectItems list. Are you certain that your groups beans are SelectItem instances? On Tue, Jun 22, 2010 at 6:51 AM, slayer666 rfu...@hotmail.es wrote: Good morning, i am trying the JSF selectManyMenu tag and i when i execute the aplication renders this trace log: javax.servlet.ServletException javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) causa raíz java.lang.NullPointerException org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:171) com.sun.faces.application.ViewHandlerImpl$WriteBehindStateWriter.write(ViewHandlerImpl.java:867) com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:620) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:539) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:772) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:832) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861) javax.faces.component.UIComponent.encodeAll(UIComponent.java:937) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) This are the codes implemented: *faces-config.xml ?xml version=1.0 encoding=UTF-8? faces-config xmlns=http://java.sun.com/xml/ns/javaee; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd; version=1.2 application resource-bundle base-namejsf.properties.Application/base-name varlabel/var /resource-bundle /application managed-bean managed-bean-namegroups/managed-bean-name managed-bean-classjava.util.ArrayList/managed-bean-class managed-bean-scopesession/managed-bean-scope list-entries value-classjsf.beans.Select/value-class value#{groupA}/value /list-entries /managed-bean managed-bean managed-bean-namegroupA/managed-bean-name managed-bean-classjsf.beans.Select/managed-bean-class managed-bean-scopesession/managed-bean-scope managed-property property-nameteam1/property-name valueBrazil/value /managed-property managed-property property-nameteam2/property-name valueKorea/value /managed-property managed-property property-nameteam3/property-name valuePortugal/value /managed-property /managed-bean managed-bean managed-bean-namelogin/managed-bean-name managed-bean-classjsf.beans.LoginBean/managed-bean-class managed-bean-scoperequest/managed-bean-scope managed-property property-nameminimum/property-name value18/value /managed-property /managed-bean navigation-rule from-view-id/index.jsp/from-view-id navigation-case from-outcomeloginSuccess/from-outcome to-view-id/success.jsp/to-view-id /navigation-case /navigation-rule navigation-rule from-view-id/success.jsp/from-view-id navigation-case from-outcomehome/from-outcome
Error handling in case of PPR was Re: Ajax Error Handler problem
Ah ok, sorry it was a tad late... I personally agree, such a parameter would make sense, it definitely would be nice to route the errors thrown into an error tag in case of ajax instead of just pushing it up the server, you might drop a note in the devs list for that or even provide a patch in the issue tracker. I am not even sure if we need such a parameter it might be even better just to default it to changeserror in the case of being in a ppr request, I am going to forward this to the devs list. Werner Am 24.06.10 07:42, schrieb Mark Li: Hi werner, i know theerror protocol, but i mean i want to handle the error in the server side, Like converter the specific exception to a certain message or convert to other exception. Then the message will be transferred viaerror to client side. this is a littler difference with the other topic about How can I notice if there are facesmessages via ajax. On Jun 24, 2010, at 5:10 AM, Werner Punz wrote: Hia mark since you are directly on the response writer anyway, look at the ajax protocol it has anerror part where you can drag in errors which are pushed into the ajax error listener queue automatically: partial-response error error-name.../error-name error-message.../error-message /error /partial-response thats how it looks the error then is issued and an error listener is triggered. The partialResponseWriter should have a startError element afair. Werner Am 23.06.10 18:56, schrieb Mark Li: Hi everyone, There is any solution for Ajax Error Handler? the org.apache.myfaces.ERROR_HANDLER seems dont work. The following is my temp solution: I hack the code about ajax exception handler. because I try the error handler extension, it doesnot work for ajax. and I cant find out any extension point either. there is my code: org.apache.myfaces.renderkit.ErrorPageWriter { . public static void handleThrowable(FacesContext facesContext, Throwable ex) throws FacesException { ... if(!ajaxErrorHandlerInited){ try { String ajaxErrorHandlerString = facesContext.getExternalContext().getInitParameter(org.apache.myfaces.AJAX_ERROR_HANDLER); if(ajaxErrorHandlerString != null){ Class? handler = ErrorPageWriter.class.getClassLoader().loadClass(ajaxErrorHandlerString); ajaxErrorHandler = handler.newInstance(); ajaxErrorHandlerMethod = ajaxErrorHandler.getClass().getMethod(handleException, FacesContext.class, } } catch (Throwable e) { e.printStackTrace(); } finally{ ajaxErrorHandlerInited = true; } } if(ajaxErrorHandler != null){ try { String message = (String) ajaxErrorHandlerMethod.invoke(ajaxErrorHandler, facesContext, ex); partialWriter.write(message); } catch (Throwable e) { e.printStackTrace(); if(ex.getCause() == null) partialWriter.write(ex.getCause().toString()); else partialWriter.write(ex.getMessage()); } }else{ if (ex.getCause() != null) { partialWriter.write(ex.getCause().toString()); } else { partialWriter.write(ex.getMessage()); } } ... } . } you can see I define a new org.apache.myfaces.AJAX_ERROR_HANDLER parameter for myfaces. myfaces or specification should have this feature. Best Regard Mark
Re: [trinidad]TreeTable cannot be collapsed or selected
Does it work in other browsers including later versions of IE? Max ?? ?? wrote: Hi,all: I've been writing a trinidad application on GlassFish v3, and testing it with Microsoft IE6. When I was using a TreeTable, it could be rendered on the page and its data was shown correctly. But it could not be collapsed or selected. I've got a warning from IE6 that said as _uixt_organization is not defined. organization is the id of my TreeTable tag, _uixt_organization is generated id in html source file. I wrote the tag in xhtml like this: tr:treeTable emptyText=No Data id=organization initiallyExpanded=true rowBandingInterval=1 rowSelection=multiple value=#{organizationBacking.tree} var=oneNode summary=Organization Chart width=100% f:facet name=nodeStamp tr:column f:facet name=header tr:outputText value=Name / /f:facet tr:outputFormatted value=lt;b#{oneNode.name}lt;/b / /tr:column /f:facet f:facet name=pathStamp tr:outputFormatted value=lt;b#{oneNode.name}lt;/b / /f:facet tr:column f:facet name=header h:outputText value=Phone / /f:facet h:outputText value=#{oneNode.phone} / /tr:column /tr:treeTable And it seems to generate a valid html source file, part of which I post at the end of this letter. Why IE6 did not process the definition of _uixt_organization ? Am I missing some attribute or configuration ? Thanks in advance! [Corresponding part in html source file]:!--Start: org.apache.myfaces.trinidad.Column-- td class=af_tableSelectMany_cell-icon-format OraTableBorder!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--input name=organization:_s id=organization:0 title=#36873;#25321; type=checkbox value=0!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--label for=organization:0 class=p_OraHiddenLabel#36873;#25321;/labelinput type=hidden name=organization:_us value=0/td !--Start: org.apache.myfaces.trinidad.Column-- td class=af_column_cell-icon-format OraTableBorder/td !--Start: org.apache.myfaces.trinidad.Column[j_idt8]-- td class=af_column_cell-text OraTableBorderdiv style=position:relative;top:0px;left:0px;margin-left:18pxa id=organization:0:hgi class=af_treeTable_expansion onclick=_uixt_organization.action('hide','0',this);return false; href=#img src=/SINOPEC/adf/images/nav-minus.gif width=19 height=18 border=0 alt=#36873;#25321;#20197;#38544;#34255;/a!--Start: org.apache.myfaces.trinidad.Output[j_idt10]--b#37096;#38376;A1/b/div/td !--Start: org.apache.myfaces.trinidad.Column[j_idt12]-- td class=af_column_cell-text OraTableBorder/td /trtr!--Start: org.apache.myfaces.trinidad.Column-- td class=af_tableSelectMany_cell-icon-format OraTableBorder!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--input name=organization:_s id=organization:1 title=#36873;#25321; type=checkbox value=1!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--label for=organization:1 class=p_OraHiddenLabel#36873;#25321;/labelinput type=hidden name=organization:_us value=1/td !--Start: org.apache.myfaces.trinidad.Column-- td class=af_column_cell-icon-format OraTableBorder/td !--Start: org.apache.myfaces.trinidad.Column[j_idt8]-- td class=af_column_cell-text OraTableBorderdiv style=position:relative;top:0px;left:0px;margin-left:36px!--Start: org.apache.myfaces.trinidad.Output[j_idt10]--b#21592;#24037;A01/b/div/td !--Start: org.apache.myfaces.trinidad.Column[j_idt12]-- td class=af_column_cell-text OraTableBorder15611092185/td /trtr!--Start: org.apache.myfaces.trinidad.Column-- td class=af_tableSelectMany_cell-icon-format-band OraTableBorder!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--input name=organization:_s id=organization:2 title=#36873;#25321; type=checkbox value=2!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--label for=organization:2 class=p_OraHiddenLabel#36873;#25321;/labelinput type=hidden name=organization:_us value=2/td !--Start: org.apache.myfaces.trinidad.Column-- td class=af_column_cell-icon-format-band OraTableBordera href=# onclick=_uixt_organization.focus('2',this);return false; title=#36873;#25321;#20197;#32858;#28966; class=af_treeTable_focusX/a/td !--Start: org.apache.myfaces.trinidad.Column[j_idt8]-- td class=af_column_cell-text-band OraTableBorderdiv
Re: JSF selectMany Tag problem
I think the problem is that your Select class is not populating the label and value instance variables, leading to a NullPointerException. I don't remember if there's a way to specify values for the constructor from managed beans -- I don't do a lot with managed beans in my JSF projects. The spec says that the bean has to have a zero-args public constructor. Your Select item does not. It does look like Jsf 1.2 allows you to set the label and the value separately after the zero-arg constructor is called. It does seem a bit odd that you're defining team1/team2 values on the Select class but aren't doing anything with them. Maybe you want to do it like this: managed-bean managed-bean-namegroups/managed-bean-name managed-bean-classjava.util.ArrayList/managed-bean-class managed-bean-scopesession/managed-bean-scope list-entries value-classjsf.beans.Select/value-class value#{groupA}/value value#{groupB}/value /list-entries /managed-bean [...] managed-bean-namegroupA/managed-bean-name managed-bean-classjsf.beans.Select/managed-bean-class managed-bean-scopesession/managed-bean-scope managed-property property-namelabel/property-name valueBrazil/value /managed-property managed-property property-namevalue/property-name valueBrazil/value /managed-property /managed-bean managed-bean-namegroupB/managed-bean-name managed-bean-classjsf.beans.Select/managed-bean-class managed-bean-scopesession/managed-bean-scope managed-property property-namelabel/property-name valueKorea/value /managed-property managed-property property-namevalue/property-name valueKorea/value /managed-property /managed-bean I suspect what you're trying to do is create one SelectItem for each team, but it's really hard to know for certain. I normally populate selectItems lists using a method on a bean... f:selectItems value=#{login.groups}/ and public SelectItem[] getGroups() { } On Thu, Jun 24, 2010 at 5:15 AM, slayer666 rfu...@hotmail.es wrote: Hi, sorry but I forgott to post the Select bean class. package jsf.beans; import javax.faces.model.SelectItem; public class Select extends SelectItem { private String team1; private String team2; private String team3; public Select(String v,String l){ super(v,l); } public String getTeam1() { return team1; } public void setTeam1(String team1) { this.team1 = team1; } public String getTeam2() { return team2; } public void setTeam2(String team2) { this.team2 = team2; } public String getTeam3() { return team3; } public void setTeam3(String team3) { this.team3 = team3; } } As you can see this class extends from SelectItem class so theoretically i have implemented a List of SelectedItems. Thanks. Mike Kienenberger wrote: That's a new way (to me) to initialize a selectItems list. Are you certain that your groups beans are SelectItem instances? On Tue, Jun 22, 2010 at 6:51 AM, slayer666 rfu...@hotmail.es wrote: Good morning, i am trying the JSF selectManyMenu tag and i when i execute the aplication renders this trace log: javax.servlet.ServletException javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) causa raíz java.lang.NullPointerException org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:171) com.sun.faces.application.ViewHandlerImpl$WriteBehindStateWriter.write(ViewHandlerImpl.java:867) com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:620) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:539) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:772) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:832) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861) javax.faces.component.UIComponent.encodeAll(UIComponent.java:937) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
Re:Re: [trinidad]TreeTable cannot be collapsed or focused
Hi, Max. Thanks for your reply. I didn't try IE7 or IE8 because Trinidad website lists only IE6 (http://myfaces.apache.org/trinidad/browsers.html). But the problem remains in Mozilla Firefox 3.5.3. In web.xml, there used to be a 'context-param' like: context-param param-nameorg.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER/param-name !-- TrinidadFaceletViewHander must be the alternate view handler if SessionChangeManager is used -- param-valueorg.apache.myfaces.trinidadinternal.facelets.TrinidadFaceletViewHandler/param-value /context-param The above came from http://myfaces.apache.org/trinidad/devguide/installation.htm. But After a ClassNotFoundException, as 'TrinidadFaceletViewHandler' couldn't be found in the lib jar, Those lines were commented. Do you think this might be the cause? BTW, I'm using Trinidad 2.0.0 alpha 2. The xhtml file's structure is like: ?xml ... !DOCTYPE ... html ... body f:view h:form.../h:form tr:treeTable ../tr:treeTable /f:view/body/html PS: I've made a mistake about collapsed or selected before. The selection boxs seem to work fine, while the collapsing and focusing do not. Macroth -- Max Starets max.star...@oracle.com Does it work in other browsers including later versions of IE? Max Macroth wrote: Hi,all: I've been writing a trinidad application on GlassFish v3, and testing it with Microsoft IE6. When I was using a TreeTable, it could be rendered on the page and its data was shown correctly. But it could not be collapsed or selected. I've got a warning from IE6 that said as _uixt_organization is not defined. organization is the id of my TreeTable tag, _uixt_organization is generated id in html source file. I wrote the tag in xhtml like this: tr:treeTable emptyText=No Data id=organization initiallyExpanded=true rowBandingInterval=1 rowSelection=multiple value=#{organizationBacking.tree} var=oneNode summary=Organization Chart width=100% f:facet name=nodeStamp tr:column f:facet name=header tr:outputText value=Name / /f:facet tr:outputFormatted value=lt;b#{oneNode.name}lt;/b / /tr:column /f:facet f:facet name=pathStamp tr:outputFormatted value=lt;b#{oneNode.name}lt;/b / /f:facet tr:column f:facet name=header h:outputText value=Phone / /f:facet h:outputText value=#{oneNode.phone} / /tr:column /tr:treeTable And it seems to generate a valid html source file, part of which I post at the end of this letter. Why IE6 did not process the definition of _uixt_organization ? Am I missing some attribute or configuration ? Thanks in advance! [Corresponding part in html source file]:!--Start: org.apache.myfaces.trinidad.Column-- td class=af_tableSelectMany_cell-icon-format OraTableBorder!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--input name=organization:_s id=organization:0 title=#36873;#25321; type=checkbox value=0!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--label for=organization:0 class=p_OraHiddenLabel#36873;#25321;/labelinput type=hidden name=organization:_us value=0/td !--Start: org.apache.myfaces.trinidad.Column-- td class=af_column_cell-icon-format OraTableBorder/td !--Start: org.apache.myfaces.trinidad.Column[j_idt8]-- td class=af_column_cell-text OraTableBorderdiv style=position:relative;top:0px;left:0px;margin-left:18pxa id=organization:0:hgi class=af_treeTable_expansion onclick=_uixt_organization.action('hide','0',this);return false; href=#img src=/SINOPEC/adf/images/nav-minus.gif width=19 height=18 border=0 alt=#36873;#25321;#20197;#38544;#34255;/a!--Start: org.apache.myfaces.trinidad.Output[j_idt10]--b#37096;#38376;A1/b/div/td !--Start: org.apache.myfaces.trinidad.Column[j_idt12]-- td class=af_column_cell-text OraTableBorder/td /trtr!--Start: org.apache.myfaces.trinidad.Column-- td class=af_tableSelectMany_cell-icon-format OraTableBorder!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--input name=organization:_s id=organization:1 title=#36873;#25321; type=checkbox value=1!--Start: org.apache.myfaces.trinidad.TreeTable[organization]--label for=organization:1 class=p_OraHiddenLabel#36873;#25321;/labelinput type=hidden name=organization:_us value=1/td !--Start: org.apache.myfaces.trinidad.Column-- td class=af_column_cell-icon-format
Re: [Tobago] calling of renderer class
Hi, there is also an example-theme in the project (https://svn.apache.org/repos/asf/myfaces/tobago/branches/tobago-1.0.x/example/tobago-theme-example/) which overrides the InRenderer. Regards Udo Am 23.06.10 09:45, schrieb Volker Weber: Hi Hani, the easiest way to overwrite a Renderer is to put your own int the tobago-resource-path into your application. e.g. if you use the speyside theme put your renderer, which must be named SheetRenderer, into the package tobago-resource-path/html/standard/speyside/tag/ Regards, Volker 2010/6/21 Abushammala, Hani (EXTERN: FTP) extern.hani.abushamma...@volkswagen.de: Another question. How can i configure another renderer for the tobago component like the sheet component. Any ideas or solutions? Regards, Hani -Ursprüngliche Nachricht- Von: Abushammala, Hani (EXTERN: FTP) [mailto:extern.hani.abushamma...@volkswagen.de] Gesendet: Montag, 21. Juni 2010 09:52 An: MyFaces Discussion Betreff: [Tobago] calling of renderer class Hi, I`ve developed a component to create a dynamic panel with a renderer class, but the renderer could not be called. The rendering works if the compoent class renders the output stream. I don`t know how i can configure the renderer for the new component in tobago. faces-config.xml: component descriptionThe dynamic panel component./description display-nameDynamicPanel/display-name !-- The name for registering the component. -- component-typeextn.DynamicPanel/component-type !-- The implementation class. -- component-classweb.components.UIDynamicPanel/component-class component-extension renderer-typeextn.DynamicPanelRenderer/renderer-type /component-extension /component render-kit renderer descriptionRenderer for DynamicPanel./description component-familyextn.DynamicPanelFamily/component-family renderer-typeextn.DynamicPanelRenderer/renderer-type renderer-classweb.components.DynamicPanelRenderer/renderer-class /renderer /render-kit Regards, Hani