0

我正在编辑屏幕上工作。我需要下拉列表来填充 1 个表中的预选值并突出显示另一个表中的这些值。我能够达到在调试语句中正确显示来自不同表的两个值的地步。

问题是......当尝试在下拉列表中显示时,预选值不仅仅是选择现有值,而是将其添加到下拉列表中。你能告诉我我在哪里输入错误的代码吗?问题在以下几行:

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

但是这个问题的解决方法是什么,谁能告诉我?

这是我的代码片段。

for (int i = 0; siteList != null && i < siteList.size(); i++){ Site s = (Site)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代码中的 a 。这样的事情会有所帮助:

<%
    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 的开始位置,因此请在代码中注意这一点。我只能看到catch-block 并且我假设您的tryfor在代码中的 -loop 之前开始。

于 2012-09-01T07:56:14.900 回答