为了账号安全,请及时绑定邮箱和手机立即绑定

在java中按州过滤城市 - 使用数组

在java中按州过滤城市 - 使用数组

Smart猫小萌 2021-09-26 17:21:04
所以,我有一个包含 State 和 City 值的 ArrayList,我必须检查 state 是否等于某个变量,让我们调用它的“var1”,如果这个 state 相等,我必须得到城市名称.. .我正在创建一个菜单过滤器。<div class="col-md-3">    <label>#{msg['state']}</label>    <h:selectOneMenu id="mdl-state" value="#{saisReportQueryBean.keyState}" class="form-control">        <f:ajax listener="#{saisReportQueryBean.Teste()}"/>         <f:selectItem itemValue="#{null}" itemLabel="#{msg['select_state']}" noSelectionOption="true" />        <f:selectItems value="#{saisReportQueryBean.keyState}" var="estado" itemValue="#{estado}" itemLabel="#{estado}" />    </h:selectOneMenu></div><div class="col-md-3">    <label>#{msg['city']}</label>    <h:selectOneMenu id="mdl-city" value="#{saisReportQueryBean.keyCity}" class="form-control">        <f:selectItem itemValue="#{null}" itemLabel="#{msg['select_city']}" noSelectionOption="true" />        <f:selectItems value="#{saisReportQueryBean.keyCity}" var="cidade" itemValue="#{cidade}" itemLabel="#{cidade}" />    </h:selectOneMenu></div>When I select the state, I've to update my city itens with just only city in references with the state selected.Here is my java code.:protected void updateData() {        this.reportQuery = new SaisReportQuery();        this.queryExecuted = false;        cidades = cidadesIbgeBeanRemote.findAll();        cidades.sort((f1, f2) -> f1.getMunicipio().compareTo(f2.getMunicipio()));        Map<String, List<CidadeIbge>> estados = cidades.stream().collect(Collectors.groupingBy(CidadeIbge::getUf));        setKeyState(estados.keySet());        getKeyState().toString();        System.out.println(keyState);           }Tks。
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

对不起大家我未完成的问题。


我的观点是,当我在菜单中选择某个值时,这必须使用referente中的值更改另一个菜单:


前端实现:


<h:panelGroup layout="block" class="col-md-3" id="panel-state">

<label>#{msg['state']}</label>


<h:selectOneMenu id="mdl-state" value="#{saisReportQueryBean.reportQuery.state}" binding="#{uf}" class="form-control input_no_round_corner">

<f:selectItem itemValue="#{null}" itemLabel="#{msg['select_state']}" noSelectionOption="true" />

<f:selectItems value="#{saisReportQueryBean.keyState}" var="estado" itemValue="#{estado}" itemLabel="#{estado}" />

<f:ajax listener="#{saisReportQueryBean.UpdateCityByState(uf.value)}" render=":panel-city" event="change" execute="@this" onevent="initializeChosenFieldsCity">

</f:ajax>

</h:selectOneMenu>

</h:panelGroup>

<h:panelGroup layout="block" class="col-md-3" id="panel-city">

<label>#{msg['city']}</label>

<h:selectOneMenu id="mdl-city" value="#{saisReportQueryBean.listCidades}" class="form-control input_no_round_corner">

<f:selectItem itemValue="#{null}" itemLabel="#{msg['select_city']}" noSelectionOption="true" />

<f:selectItems value="#{saisReportQueryBean.listCidades}" var="cidade" itemValue="#{cidade.municipio}" itemLabel="#{cidade.municipio}" />

</h:selectOneMenu>

</h:panelGroup>

返回实现:


cidades = cidadesIbgeBeanRemote.findAll();



setKeyState(new ArrayList(estados.keySet()));

getKeyState().toString();

getKeyState().sort((f1, f2) -> f1.compareTo(f2));


查看完整回答
反对 回复 2021-09-26
  • 1 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信