Welcome to the JavaRanch, Jagadesh!
Binding is actually not used/required very often in
JSF. You can get a false impression that it is thanks to the fact that obsolete documentation can often crowd out more recent stuff on the Internet and that some of the less polite IDEs used it as a cheat to make their proprietary functions work, but in actuality, I only have one webapp that uses it and even it probably shouldn't have.
What binding does is bind the JSF internal component object directly to the backing bean. You only actually need to do this if you are dynamically modifying the component tree or have very unique requirements to access JSF's internals. Most of JSF is designed to work on POJOs, so the more JSF-specific code you have, the more likely you've made a design mistake.
A lot of people think you have to use dynamic component modification to show/hide elements or to change the size of a displayed table. In actuality, JSF has much simpler POJO mechanisms for that. To show/hide elements, you use the "rendered" element attribute. To change the number of rows in a table, you simply change the number of rows in the table's data model. If you have a limit on the actual number of displayed rows in your dataTable element definition, that particular property value (number of displayed rows) can be supplied from a backing bean POJO property via an EL expression.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.