So it 'works now' though not exactly as I expected it would/should.
I discovered that if in the GridBean I have a setter, then I lose all my carefully configured HtmlGridPanel on the postback. If I get rid of the setter then it continues to show up on the post back which is good. However without the setter than it can't restore view so when I ask for that bean while processing the page in a different bean (via: application.getVariableResolver().resolveVariable(context, "GridBean")) then the gridBean that I get back has a null questions member, which is annoying since I then don't have a handle on what people actually put into my htmlInputFields. The solution to that is that you can valueBind the input fields when you dynamically create them to a hash in the gridBean object, which has a setter and a getter and thus gets set with the correct data in restore view and you can access it while processing the page. For example when I am configuring my HtmlGridPanel in code and making the HtmlInputText objects for it, I can do something like:
HtmlInputText input = (HtmlInputText)application.createComponent(HtmlInputText.COMPONENT_TYPE);
input.setId(QUESTION_PREFIX + questionNumber);
literalQuestions.add(input);
input.setValueBinding("value", // param to bind to
application.createValueBinding("#{GridBean.answers[" + questionNumber + "]}"));
and then when processing the request I get access to the gridBean object, which will have a HashMap<Long,
String> answers member populated with the answers to the questions, keyed by questionNumber.
Big pain in the ass to figure out as a newbie to
JSF (if not to
java, heh) but hopefully this helps someone else.
--
As an aside I'm not real convinced that making people put up fake last names (since privacy on the web is an issue) is really the best solution for avoiding 'l33t' names. You could just exclude everything but alpha and not allow more than 2 of the same char in a row and things would probably look fairly reasonable. I suppose if you have a different goal than anti-leet then whatever, but it certainly seems like very odd requirement to this netizen.