-1
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    WorldDBManager DB = new WorldDBManager();
    String choices = request.getParameter("selectchoice");
    List<WorlPopulationInfo> country = new ArrayList<>();

    country = DB.getResultAsArrayList("world", "select * from country");


    StringBuffer strB = new StringBuffer();


    for(int i=0;i<country.size();i++){
        if(country.get(i).countryName == choices){
            strB.append("<option selected='selected'>" + country.get(i).countryName+"</option>");
            System.out.println(choices + " pareil " + country.get(i).countryName);
        }else if(country.get(i).countryName != choices){
            strB.append("<option>" + country.get(i).countryName+"</option>");
            System.out.println(choices + " " + country.get(i).countryName);
        }
    }


    request.setAttribute("country", strB);




    getServletContext().getRequestDispatcher("/index.jsp").forward(request,  response);

}

System.println を実行することによって、データベース内に変数の選択からの値が存在することがわかっている場合、彼が最初に行かない理由がわかりません。なぜ私の平等を無視しているのか理解できません。誰かが私が間違っていることを説明できれば。感謝。

4

3 に答える 3

2

試す -

if(country.get(i).countryName.equals(choices)){

あなたはそこにいる必要はありませんelse If、それだけelseで十分です

 if(country.get(i).countryName.equals(choices)){
            strB.append("<option selected='selected'>" + country.get(i).countryName+"</option>");
            System.out.println(choices + " pareil " + country.get(i).countryName);
        }else{
            strB.append("<option>" + country.get(i).countryName+"</option>");
            System.out.println(choices + " " + country.get(i).countryName);
        }
于 2013-04-08T23:52:28.713 に答える
0

文字列を == と比較することはできないと思います (おそらく 1.7)。使用する必要があります

if(country.get(i).countryName.equals(choices)){}
于 2013-04-08T23:53:46.977 に答える
0

文字列比較には .equals() を使用します。

于 2013-04-08T23:52:21.723 に答える