Вы полностью прорабатываете свой путь вокруг JSF. Это не сработает. JSF требует, чтобы запрос POST имел ссылку на состояние представления, которое в обычных формах JSF идентифицируется скрытым полем с именем javax.faces.ViewState
. Если вы хотите получить полный контроль над HTML, вам следует вместо этого использовать простой JSP / Servlet или основанную на действии инфраструктуру MVC, такую как Spring MVC, а не страницу JSF с управляемым компонентом.
Что касается вашей реальной проблемы, для которой вы думали, что это решение,
На странице JSF я использую простые переключатели HTML. Я не могу изменить его на компонент JSF <h:selectOneRadio>
, потому что HTML-код, который мне дали, нелегко преобразовать в код JSF.
В этом случае компонент Томагавка <t:selectOneRadio>
может быть очень полезным. Этот компонент поставляется с дополнительным атрибутом layout
spread
, который позволяет вам позиционировать переключатели везде в разметке, которую вы хотите, используя <t:radio>
, не заканчивая <table>
в качестве JSF стандартный <h:selectOneRadio>
компонент делает.
1029 * Е.Г. *
<t:selectOneRadio id="foo" value="#{bean.foo}" layout="spread">
<f:selectItems value="#{bean.foos}" />
</t:selectOneRadio>
...
<div class="filedItem margin-10px floatLeft">
<t:radio for="foo" index="0" />
</div>
<div class="filedItem margin-10px floatLeft">
<t:radio for="foo" index="1" />
</div>
...
(кстати, ваши CSS-классы несколько сомнительны, я бы посоветовал поработать и над этим, но это совершенно отдельный предмет)