我正在编辑屏幕上工作。我需要下拉列表来填充一个表中的预选值,并突出显示另一个表中的这些值。 我能够达到这样的程度:来自不同表的两个值都在调试语句中正确显示。
问题是... 当尝试在下拉列表中显示时,预选值不仅仅是选择现有值,而是将其添加到下拉列表中。 您能告诉我我到底在哪里输入了错误的代码吗?问题出在以下几行:
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(); site = s.getSitename();
if (site.equals(SiteName)){ %> <option selected="selected" > <%=SiteName%> </option> <% } %> <option value="<%=siteid%>"><%=site%> </option><% } }catch(Exception e){ e.getMessage(); } %> </select>
最佳答案
您在代码中错过了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 的起始位置,因此请在代码中注意这一点。我只能看到 catch
block ,并且我假设您的 try
block 在代码中的 for
循环之前开始。
关于java - 变量的默认下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12225674/