Actually, in JSF2, if you don't use the
JSF h:head and h:body tags, JSF will not put the right supporting code and elements in the right places on the generated HTML and the page should not work properly.
Superficially, things look OK with what you're doing, but I do have one suspicion.
You have no "id=" property on your h:form. It's good practice to
always give id's to container elements such as forms, dataTables, panelGrids, and so forth. If you do not, JSF will synthesize unpredictable IDs for those containers and use those IDs to create the actual HTML element IDs.
In your particular case, I think the problem is that you're referencing an element from within a container (the dataTable) that is external to that container, even though both the container (datatable) and the referenced control (inputText) are part of the same form. If you you give the form an ID and used the form/inputTextID concatenation as the attribute value for the "render=" on the ajax element, that may fix things.
Which brings me to another point. Not only should you give container elements id attributes,
you should also give ids to input controls. Even if you don't actually reference them, it makes it easier to debug views if you have to resort to the "View Page Source" debugging option.