Albert, If you are just starting out, I would recommend learning JSF by itself. (or struts by itself.) While the two can be used together, that's best for Struts shops that have a lot invested in their way of doing things and want to switch over slowly.
Both are web frameworks, but the flow is somewhat different.
Indeed they are independent. While Struts is one of the oldest and most used frameworks born directly from the developers, JSF is supported with a JCP created spec. The problem I see with JSF is that there are not too many implementations of the framework (I may be wrong but I think in fact there are only two)