IDEs have nothing to do with this.
In JSF Version 1, the scope and initialization of JSF Managed Beans was defined in the faces-config.xml file. In JSF2, the option was added to define scope and initialization as
Java annotations in the bean's class definition. If a conflicting bean declaration is found in faces-config.xml, that declaration will override the annotations, thereby making it easier to re-use code without editing and recompiling it. There are also some other things that are not possible to declare with code annotations, such as integration of the Spring Framework into the JSF EL context, so faces-config.xml isn't completely useless, even these days. Although if you don't use any of those features, you may omit that file entirely.
To get values from one View to another, the 2 Views (pages) need to be able to reference a common backing bean. This bean has to be Session Scoped or higher. Request Scoped beans are destroyed each time they're used, and View Scoped beans don't survive the transition from one View to the next. I'm ignoring Flash scope here, since that's better left until you have the basic concepts working for you.
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.