Yes,  it is better extend javax.faces.application.ViewHandler. I was lazy
:-)

> -----Original Message-----
> From: Matthias Wessendorf [mailto:[EMAIL PROTECTED] 
> Sent: Monday, May 30, 2005 3:47 PM
> To: MyFaces Discussion
> Subject: Re: how to set different render kit other than default
> 
> Ramesh,
> 
> it is better to extend javax.faces.application.ViewHandler
> 
> in JSF 1.2 there is better support to be able to decorate a 
> standard ViewHandler impl.
> 
> On 5/30/05, Jiri Zaloudek <[EMAIL PROTECTED]> wrote:
> >  
> > Hi,
> > it isn't problem if you can use only WML renderkit in your 
> > application. Add this code to faces-config.xml:
> > <application>
> >        
> > <default-render-kit-id>WML_BASIC</default-render-kit-id>
> >        
> > </application>
> >   
> > Problem is if you can use HTML and WML renderkit together. Standard 
> > ViewHandler support only one RenderKit - in this JSF 
> version. So you 
> > must
> > create(replace) standard ViewHandler. 
> > In my diploma work I have defined URL mapping *.jsf for 
> HTML pages and 
> > *.jsfw mappings for WML pages. The ViewHandler then can set right 
> > RenderKit from request URL.
> >   
> >   
> >   
> > My ViewHander source code: 
> > public class WapViewHandlerImpl extends 
> > org.apache.myfaces.application.jsp.JspViewHandlerImpl {
> >     private static Log log = 
> LogFactory.getLog(WapViewHandlerImpl.class);
> >     private static final String WML_RENDERKIT_PARAM = 
> "WML_RenderKit";
> >     private static final String WML_MAPPING = "WML_Mapping";
> >     
> >     /** Creates a new instance of WapViewHandlerImpl */
> >     public WapViewHandlerImpl() {
> >     }
> >     
> >     /** Gets RenderKit's name and mapping from init configuration. 
> >      * @return if request url containts this mapping then return 
> > specified renderkit.
> >      * Otherwise delegates calculating RenderKit to the 
> > org.apache.myfaces.application.jsp.JspViewHandlerImpl
> >      */
> >     public String calculateRenderKitId(FacesContext
> > facesContext) {
> >         String renderKit =
> > 
> facesContext.getExternalContext().getInitParameter(WML_RENDERK
> IT_PARAM);
> >         String mapping =
> > facesContext.getExternalContext().getInitParameter(WML_MAPPING);
> >                 
> >         if (containtMapping(facesContext, mapping))
> >             return(renderKit);
> >         else
> >             return(super.calculateRenderKitId(facesContext));
> >     }
> >     
> >     private boolean containtMapping(FacesContext 
> facesContext, String 
> > mapping){
> >         HttpServletRequest req =
> > (HttpServletRequest)facesContext.getExternalContext().getRequest();
> >         return(req.getRequestURI().indexOf(mapping) != -1);
> >     }
> >     
> > }
> >  
> >   
> > To config this ViewHandler as a defautl - add this code to 
> faces-config: 
> > <application>        
> >        
> > 
> <view-handler>org.apache.myfaces.wap.webapp.WapViewHandlerImpl</view-h
> > andler>
> >        
> >  </application>
> >   
> >   
> > And the last step is define mappings and set second 
> RenderKit in web.xml: 
> > <context-param>
> >     <description>Sets renderkit name for wml pages</description>
> >     <param-name>WML_RenderKit</param-name>
> >     <param-value>WML_BASIC</param-value>        
> >   </context-param>
> >   <context-param>
> >     <description>Sets mapping for wml pages</description>  
> >     <param-name>WML_Mapping</param-name>
> >     <param-value>.jsfw</param-value>
> >   </context-param>
> >   
> > <!-- Faces Servlet Mapping for HTML-->
> >   <servlet-mapping>
> >     <servlet-name>Faces Servlet</servlet-name>
> >     <url-pattern>*.jsf</url-pattern>
> >   </servlet-mapping>
> >   <!-- Faces Servlet Mapping for WML-->
> >   <servlet-mapping>
> >     <servlet-name>Faces Servlet</servlet-name>
> >     <url-pattern>*.jsfw</url-pattern>
> >   </servlet-mapping>
> >   
> > Regards,
> > Jiri Zaloudek
> >  
> >  
> >  ________________________________
> >  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > Sent: Monday, May 30, 2005 10:33 AM
> > To: [email protected]
> > Subject: how to set different render kit other than default
> > 
> >  
> >  
> >  
> >  
> > 
> > Hi,
> > 
> >   
> > 
> > How can I set other renderer kits other than HTML. Suppose 
> if I want 
> > to call JSF app from a mobile. How will I configure a separate 
> > renderer for this type of clients.
> > 
> >   
> > 
> > Regards,
> > 
> > Ramesh
> >  
> > 
> > Confidentiality Notice
> > 
> > The information contained in this electronic message and any 
> > attachments to this message are intended for the exclusive 
> use of the 
> > addressee(s) and may contain confidential or privileged 
> information. 
> > If you are not the intended recipient, please notify the sender at 
> > Wipro or [EMAIL PROTECTED] immediately and destroy all copies of 
> > this message and any attachments.
> >  
> 
> 
> --
> Matthias Wessendorf
> 

Reply via email to