亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果不是根據用戶選擇工作

如果不是根據用戶選擇工作

慕容3067478 2021-12-01 19:42:30
我正在處理 HTML 表格。為此,我從我的 Java 代碼返回 JSON。我有一個作為 HTML 頁面的 UI,其中有一個從日期到日期的表單和一個具有 4 個這樣的選項的選擇標簽 <form id="formId" method="get">        <div class="container">            <h4>Start Date:</h4>            <input type="text" id="startdate" name="fromdate" width="276"                placeholder="dd/mm/yyyy" required />            <h4>End Date:</h4>            <input type="text" id="enddate" name="todate" width="276"                placeholder="dd/mm/yyyy" required />            <h4>Outlets:</h4>            <select name="outlet" id="all">                <option>ALL</option>                <c:forEach var="item" items="${obj.outlet}">                    <option>${item}</option>                </c:forEach>            </select>            <br>            <br>            <div>                <button id="button" class="btn btn-default" type="submit">Search</button>            </div>        </div></form>我從表單中獲取該輸入并在 servlet 中以 doget 方法獲取值,如下所示:    String fromdate=request.getParameter("fromdate");        String todate=request.getParameter("todate");        String outlet=request.getParameter("outlet");//      System.out.println(String.format("fromdate: %s, todate: %s, outlet: %s", new Object[]{fromdate, todate, outlet}));        List<String> outletList = Arrays.asList(outlet.split("\\s*,\\s*"));        try {            String json = HourlySalesDateOutlet.createJson(outletList, fromdate, todate);            response.getWriter().write(json);//          System.out.println("dheeraj"+json);        }        catch (Exception e) {            e.printStackTrace();        }    }現在這是我的 Java 類,我在其中編寫了兩個查詢,一個是用戶是否選擇全部,另一個是用戶選擇特定插座。我的問題是 if 語句沒有執行,只有 else 正在執行,如果用戶從 FORM 中選擇一個出口,如果用戶選擇 ALL,則它不起作用。
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

對于您的問題,我有一個簡單的解決方案。當用戶全選時,在這種情況下傳遞空列表,并在進行查詢時僅放置此條件。


if (outletList.size()==0) {

// case for all

} else {

// do regular stuff

}


查看完整回答
反對 回復 2021-12-01
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

您不是在比較可比較的類型。outletList是 aList并且它不能等同于 aString即使列表可能只包含一個恰好是 a 的元素String。所以,outletList.equals("ALL")不會做你認為它會做的事情。


但這提出了一個有趣的觀點。您有一個選擇列表,但multiple為什么不返回一個始終是單個值的列表?為什么在ALL選擇時切換到發回空列表?這沒有意義;正如預期的那樣,有一個選擇。這增加了不必要的混亂。


嘗試將單個值作為 a 發回String并讓該值確定邏輯,以便您具有靈活性。如果這是無法避免的名單,然后只接受一個值(list[0]例如)和呼叫平等上是 沒有的List。


if(outletList[0].equals("All")) {...}


如果你后來發現自己需要不止一if-else對,你可以切換到switch這樣的:


switch(outletList[0]) { // or the single value...

    case "ALL":

        ...

    ...

    default:

        ... 

}


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號