Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据第一个下拉列表的选择,第二个下拉列表应包含相关内容_Java_Struts2 - Fatal编程技术网

Java 根据第一个下拉列表的选择,第二个下拉列表应包含相关内容

Java 根据第一个下拉列表的选择,第二个下拉列表应包含相关内容,java,struts2,Java,Struts2,根据第一个下拉列表项的选择,我希望第二个下拉列表应包含相关内容。我如何在java中做到这一点? 例如, 比如说,第一个下拉列表包含国家名称,第二个下拉列表包含国家名称。如果我从第一个下拉列表中选择一个特定的国家,比如印度,那么第二个列表应该只显示该国的相关州,即印度州。 这两个列表都是动态的。这比Java和struts 2更像是Javascript 有两个选项可以获得一个映射,第一个下拉列表的值作为键,另一个下拉列表的值与该项相关 然后,当选择第一个组合框的值时,您可以从javascript映射

根据第一个下拉列表项的选择,我希望第二个下拉列表应包含相关内容。我如何在java中做到这一点? 例如, 比如说,第一个下拉列表包含国家名称,第二个下拉列表包含国家名称。如果我从第一个下拉列表中选择一个特定的国家,比如印度,那么第二个列表应该只显示该国的相关州,即印度州。
这两个列表都是动态的。

这比Java和struts 2更像是Javascript

有两个选项可以获得一个映射,第一个下拉列表的值作为键,另一个下拉列表的值与该项相关

然后,当选择第一个组合框的值时,您可以从javascript映射中获取值,并将其设置为第二个下拉列表


另一个选项是在第一个下拉列表的选择中发送ajax请求,并从结果中选择第二个下拉列表。

我建议使用javascript:

或者使用ajax,通过执行struts操作来返回选项,然后重新加载选定内容,例如使用jquery:

$stateSelect.load'http://host/myStateAction.do?country=“+国家

或者在页面加载上加载整个国家/州映射,并使用纯javascript更新第二个列表,而无需服务器调用。为此,您可以在每个国家/地区选项中存储一个数据状态属性,其中包含相应的状态

国名


否则,如果希望避免使用javascript,可以在触发更改事件时提交表单,在服务器端struts操作中,根据第一个列表的值填充第二个列表,并重定向到表单页面

您必须像下面这样使用JavaScript:这比从java端处理要好:

以下是您的示例HTML文件:

<select id="country" name="country" aria-required="true" class="required">
    <option value="">Select Your Country</option>
    <option value="USA">India</option>
    <option value="CA">Pakisthan</option>
</select>
<p><label for="state">Select Your State<span title="required">*</span>
</label></p>
<select id="state" name="state" aria-required="true" class="required">
    <option value="" selected="">Select Your State</option>
    <optgroup label="India">
        <option value="WB">West Bengal</option>
        <option value="BH">Bihar</option>        
    </optgroup>
    <optgroup label="Pakisthan">
        <option value="LH">Lahore</option>
        <option value="IB">Islamabad</option>
    </optgroup>
</select>
您也可以使用AJAX,它对您来说可能有点复杂,所以最好使用简单的JavaScript。
您可以尝试这种方法,如果有任何问题,请告诉我。

您是在谈论swing组件还是HTML组件?Struts2中有标记。@Sudhanshu,我必须在JSP页面上显示它。@Anand Shankar,我如何用java脚本从数据库中获取县值和州值?
var stateVar = $('#state option, #state optgroup');
stateVar.hide();
$('#country').change(function () {
    stateVar.hide();
    $("#state optgroup[label='" + $(this).find(':selected').html() + "']")
        .children()
        .andSelf()
        .show();
});