错误显示equalsIgnoreCase

时间:2015-09-16 09:31:20

标签: java jsp

我为供应商列表的下拉框编写了查询值("全职","兼职"),即我想为供应商合同选择列表添加下拉框它有2个值,full timepart time 这是我的代码:

<td><b>Vendor Contract<font color="red">*</font></b></td>
    <td>
        <select id="Vendor Contract" name="Vendor Contract" style="width: 155" >
        <option selected value="">-select-</option>
        <% 
        Iterator<String> viterator = VendorList.iterator();
        while(viterator.hasNext()){
        String selected = ""; 
        String Vendor = viterator.next();
        if(Vendor.equalsIgnoreCase(VendorList))
        selected = "Selected";
        %>
        <option <%=selected%> value="<%=Vendor%>"><%=Vendor%></option>
        <%}%>
        </select>
    </td>   

我收到的错误如下所示:

The method equalsignorecase string in the type string isn't applicable for the arguments(array list(string))  

如何修复此错误?

3 个答案:

答案 0 :(得分:1)

您传递了ArrayListequalsIgnoreCase方法,该方法需要String类型。因此,您无法将StringStrings列表进行比较。

从您的代码中我认为您需要从列表中确定所选元素,而您的代码无法做到这一点,因为您始终在比较相同的值。

您需要做的是获得另一个要依赖的因素,例如创建一个包含供应商值的类,如果选择了另一个值,则需要:

class VendorItem {
    private String value;
    private boolean selected;

    // setters and getters.
}

然后在您的代码中应该看起来像

Iterator<VendorItem> viterator = vendorItems.iterator();

while(viterator.hasNext()) {

String selected = ""; 
VendorItem vendor = viterator.next();

if(vendor.isSelected()) {
    selected = "Selected";
}

答案 1 :(得分:0)

equalsIgnoreCase

方法ArrayList收到一个字符串。您正在通过sed

不能将字符串与字符串列表进行比较。传递你想要比较的字符串。

答案 2 :(得分:0)

问题是.equalsIgnoreCase()接受String类型的参数,并且您正在传递List String。您必须打算将用户选择与List进行比较。注意,避免使用jsp scriplets,而是尝试使用JSTL核心标记。