【问题标题】:how to modify my page and pass my selected option to java beans如何修改我的页面并将我选择的选项传递给 java bean
【发布时间】:2012-02-13 13:21:52
【问题描述】:

我正在使用 html 代码来显示我的页面,具体取决于我单击的所选选项。但现在我也想将我选择的选项传递给 java bean。

我的 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 beans?

【问题讨论】:

    标签: java html jsf javabeans option


    【解决方案1】:

    使用 JSF 组件而不是普通的 HTML 元素。 JSF 组件允许您将值绑定到 bean 属性。表示 HTML &lt;select&gt; 元素的 JSF 组件是 &lt;h:selectOneMenu&gt;,您可以在其中使用 &lt;f:selectItem&gt;&lt;f:selectItems&gt; 指定选项。

    例如

    <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,那么您也可以只使用 &lt;f:ajax&gt; 而不是所有的 JavaScript 样板。我建议花一些时间阅读一些体面的 JSF 教程,看起来你完全错过了手动编写所有 HTML/JS 的 JSF 的意义。或者,如果您打算完全控制 HTML/JS,最好寻找基于动作的 MVC 框架,例如 Spring MVC,而不是基于组件的 MVC 框架,例如 JSF。

    【讨论】:

      【解决方案2】:

      使用 AJAX。这允许您将数据发送到服务器,而无需更改网页上的任何内容。

      尝试使用像 jQuery 这样的框架,它提供 AJAX (docs) 和许多其他很棒的东西来构建 HTML5 应用程序。

      【讨论】:

      • 啊,对不起。您需要在服务器端有一个响应 AJAX 请求的处理程序。我不确定 JSF;除了标签之外,我在问题中没有看到任何特定于 JSF 的内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多