When you want to produce user interface features for which HTML does not have its own elements, you can create a custom Java Server Faces component and insert it in your Facelets page.
This mechanism can cause a simple element to create complex web code.
The JSF implementation uses the element name and the identifying attribute to determine the corresponding Facelets tag that will be used in the server-side processing.
The browser, however, interprets the markup that the page author has written.
For TLS and SSL authentication, I am using GMail SMTP server because it supports both of them. You can extend this method to attach multiple files too.
They allow you to pass attributes that are not Java Server Faces attributes through to the browser without interpretation.Session and some other required fields as arguments. To keep it simple, some of the arguments are hard coded but you can extend this method to pass them or read it from some config files. However, creating such a component is a significant task (see Chapter 15, "Creating Custom UI Components and Other Custom Objects").HTML5 offers new elements and attributes that can make it unnecessary to write your own components.