как изменить мою страницу и передать выбранную опцию Java-бобам - PullRequest
0 голосов
/ 13 февраля 2012

Я использую HTML-код для отображения моей страницы в зависимости от выбранной опции, на которую я нажимаю.Но теперь я хочу передать свой выбранный выбор и Java-бобам.

мои 4 варианта

<tr>
<td class="title">Category:</td>
<td class="field">
    <select name="list" onchange="display(this,'truck','car');">
    <option>Please select:</option>
    <option value="invisible">Bike</option>
    <option value="invisible">Quad</option>
    <option value="car">Car</option>
    <option value="truck">Truck</option>
    </select>
</td>
</tr>

Скрипт, который я использую

<script type="text/javascript">
function display(obj,id1,id2) {
    txt = obj.options[obj.selectedIndex].value;
    document.getElementById(id1).style.display = 'none';
    document.getElementById(id2).style.display = 'none';
    if ( txt.match(id1) ) {
        document.getElementById(id1).style.display = 'block';
    }
    if ( txt.match(id2) ) {
        document.getElementById(id2).style.display = 'block';
    }
}

</script>

Функция отображения изменяет мойНа странице выполняются следующие действия:

<tbody id="car" style="display: none;">

и

<tbody id="truck" style="display: none;">

Теперь, как передать выбранные параметры Java-бобам?

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Используйте компонент JSF вместо простого HTML-элемента.Компоненты JSF позволяют привязать значение к свойству компонента.Компонент JSF, представляющий элемент HTML <select>, представляет собой <h:selectOneMenu>, в котором можно указать параметры, используя <f:selectItem> или <f:selectItems>.

Например,

<h:selectOneMenu id="list" value="#{bean.vehicle}" onchange="display(this,'truck','car');">
    <f:selectItem itemValue="#{null}" itemLabel="Please select:" />
    <f:selectItem itemValue="invisible" itemLabel="Bike" />
    <f:selectItem itemValue="invisible" itemLabel="Quad" />
    <f:selectItem itemValue="car" itemLabel="Car" />
    <f:selectItem itemValue="truck" itemLabel="Truck" />
</h:selectOneMenu>

с

private String vehicle;

// Getter+setter.

Если вы используете JSF 2.x, то вы также можете просто использовать <f:ajax> вместо всего этого шаблона JavaScript.Я бы посоветовал потратить некоторое время на изучение некоторых достойных руководств по JSF, похоже, вы полностью упускаете суть JSF, написав все эти HTML / JS вручную.Или, если вы намереваетесь получить полный контроль над HTML / JS, лучше искать среду MVC, основанную на действии, например Spring MVC, а не среду MVC, основанную на компонентах, такую ​​как JSF.

0 голосов
/ 13 февраля 2012

Используйте AJAX. Это позволяет отправлять данные на сервер без каких-либо изменений на веб-странице.

Попробуйте такую ​​инфраструктуру, как jQuery , которая предлагает AJAX ( документы ) и множество других интересных вещей для создания приложений HTML5.

...