0

編集画面で作業しています。1 つのテーブルから事前に選択された値を入力し、別のテーブルからそれらの値を強調表示するには、ドロップダウンが必要です。異なるテーブルの両方の値がデバッグ ステートメントで正しく表示されるようになりました。

問題は... ドロップダウンリストに表示しようとすると、事前に選択された値が既存の値を選択するだけでなく、ドロップダウンに追加されます。コードを間違って入力した場所を正確に教えてください。問題は以下の行にあります。

if (site.equals(SiteName)){ %> <%=SiteName%> <%
} %>

しかし、これに対する解決策は何ですか、誰か教えてください。

これが私のコードスニペットです。

for (int i = 0; siteList != null && i < siteList.size(); i++){ サイト s = (サイト)siteList.get(i); int siteid = s.getID().intValue(); サイト = s.getSitename();

              if (site.equals(SiteName)){
           %>
              <option selected="selected" >  <%=SiteName%>  </option> 

          <%  
              } 
           %> 
              <option value="<%=siteid%>"><%=site%>  </option><%

              } 
              }catch(Exception e){
              e.getMessage();
              }
          %> 
      </select>
4

1 に答える 1

1

elseコード内の を見逃しました。このようなものが役立ちます:

<%
    for (int i = 0; siteList != null && i < siteList.size(); i++){
        Site s = (Site) siteList.get(i); 
        int siteid = s.getID().intValue(); 
        site = s.getSitename();

        if (site.equals(SiteName)){
%> 
            <option selected="selected" >  <%=SiteName%>  </option> 
<%  
        } //end of if-statement
        else{ 
%> 
            <option value="<%=siteid%>"><%=site%>  </option>
<%
        } //End of else
    } //End of for 
  }catch(Exception e){
    e.getMessage();
  }
%> 
</select>

注:try -block の開始位置を指定していないため、コード内で注意してください。-blockが表示されただけで、コード内の -loop の前にブロックが開始するcatchと想定しています。tryfor

于 2012-09-01T07:56:14.900 に答える