Should I use Facelets “jsfc” attribute?

前端 未结 1 555
忘掉有多难
忘掉有多难 2021-02-01 02:54

Facelets uses the jsfc attribute to convert HTML elements to their associated JSF components. This is rather helpful for fast prototyping as it

1条回答
  •  逝去的感伤
    2021-02-01 03:49

    As you said, the jsfc attribute is essentially usefull when you have to "convert" an HTML prototype to a JSF page. For example, when you have an HTML input text:

    
    

    you can add the jsfc attribute in order to convert this HTML component into a JSF component:

    
    

    This is equivalent to writing the following JSF code:

    
    

    As stated in the Facelets documentation here or here, the attribute jsfc can also be used to "map" Facelets components. For example, you can remove a part of the HTML code:

    
    This won't be compiled either 
    
    

    You can also create a table using this attribute:

    #{emp.lastName} #{emp.firstName}

    In this example, we do not link this table to a h:datatable component, but we create a table with HTML code, using the JSF component ui:repeat to iterate on rows.

    As you can see, the jsfc attribute can be used to convert one HTML component into one JSF component in a JSF page. So for complex components, such as the datatable, you will have to use some workarounds (using ui:repeat instead of the h:datatable component).

    Another point is that you will not be able to use third-libraries components such as the ones proposed by RichFaces, IceFaces, Tomahawk, and so on. And these libraries are really one of the interests of JSF.

    So to summarize: jsfc can be usefull to transform a HTML prototype into a JSF applications, essentially for creating Proof of Concepts or designing the general UI. However, I think it is better to avoid this component once the "real" development starts...

    0 讨论(0)
提交回复
热议问题