Welcome to the JavaRanch, John!
JSF is a very pure implementation of the MVC design paradigm. In MVC, logic belongs in the Controller, not in the View. In other words, not in the web page, in scriptlets, in JSTL (which, as you're discovered, don't work well in JSF), not in JavaScript, or whatever.
JSF is also abstract. If you look at the docs for the dataTable control, for example, I don't think you'll find the words "loop" or "iterate" anywhere in there. A dataTable is a 2-dimensional rendering of data, and the mechanism used to enumerate that data isn't important.
I'm unclear on what the actual abstract goal you have in mind, however. We recently had someone else with a similar question, so you may want to search around this forum and see if that
thread helps.