If the input is not processed during the form submit, then that can only mean that the rendered
attribute didn't evaluate true
during processing the form submit, which in turn can only mean that the #{cm.contactMethodId}
has incompatibly changed (e.g. because it's a request scoped bean property instead of a view scoped bean property) and/or that #{param.contactMethodID}
isn't present during the form submit.
Provided that the bean is in the right scope for the job (otherwise the original rendered
approach would likely not have worked either), then retaining the request parameter as follows in the command button/link responsible for submitting the form should do it:
<h:commandButton ...>
<f:param name="contactMethodID" value="#{param.contactMethodID}" />
</h:commandButton>