Java 如何在下拉值中获取null

Java 如何在下拉值中获取null,java,save,Java,Save,我有两个长度不等的下拉列表。我将每个下拉列表的值传递给控制器,并在执行一些操作后将其保存到数据库中 我有一个查询,好像第一个下拉列表有4个条目,第二个下拉列表有7个条目,那么传递给控制器的第一个下拉列表的最后3个条目应该为空。我怎样才能做到这一点 我尝试了一些代码,但它不起作用 if(firstDropdownNames != null || secondDropdownNames != null){ for(int i=0; i < Math.max(firstDropdownNam

我有两个长度不等的下拉列表。我将每个下拉列表的值传递给控制器,并在执行一些操作后将其保存到数据库中

我有一个查询,好像第一个下拉列表有4个条目,第二个下拉列表有7个条目,那么传递给控制器的第一个下拉列表的最后3个条目应该为空。我怎样才能做到这一点

我尝试了一些代码,但它不起作用

if(firstDropdownNames != null || secondDropdownNames != null){
  for(int i=0; i < Math.max(firstDropdownNames.length,secondDropdownNames.length); i++)
    {
        if(secondDropdownNames.length> firstDropdownNames.length){
           int j= secondDropdownNames.length - firstDropdownNames.length;
            if(i==j){
            String firstDropdownId = null;
            firstDropdownNames[i] = null;
            String secondDropdownId = service.getSecondId(secondDropdownNames[i]);
            Pair pair = new Pair(ProjectId, firstDropdownId, firstDropdownNames[i], secondDropdownId, secondDropdownNames[i]);
            service.save(pair);
           }
        }
       else if(firstDropdownNames.length> secondDropdownNames.length){
           int j= firstDropdownNames.length - secondDropdownNames.length;
            if(i==j){
            String secondDropdownId = null;
            secondDropdownNames[i] = null;
            String firstDropdownId = service.getFirstId(firstDropdownNames[i]);
            Pair pair = new Pair (ProjectId, firstDropdownId, firstDropdownNames[i], secondDropdownId, secondDropdownNames[i]);
            service.save(pair);
           }
        }
        else{
          String firstDropdownId = service.getFirstId(firstDropdownNames[i]);
           String secondDropdownId = service.getSecondId(secondDropdownNames[i]);
           Pair pair = new Pair (ProjectId, firstDropdownId, firstDropdownNames[i], secondDropdownId, secondDropdownNames[i]);
          service.save(pair);
    }
    response.setMessage("Saved successfully");
  }
if(firstDropdownNames!=null | | secondDropdownNames!=null){
for(int i=0;ifirstDropdownNames.length){
int j=secondDropdownNames.length-firstDropdownNames.length;
如果(i==j){
字符串firstDropdownId=null;
firstDropdownNames[i]=null;
字符串secondDropdownId=service.getSecondId(secondDropdownNames[i]);
Pair Pair=新对(ProjectId、firstDropdownId、firstDropdownNames[i]、secondDropdownId、secondDropdownNames[i]);
服务。保存(对);
}
}
else if(firstDropdownNames.length>secondDropdownNames.length){
int j=firstDropdownNames.length-secondDropdownNames.length;
如果(i==j){
字符串secondDropdownId=null;
secondDropdownNames[i]=null;
字符串firstDropdownId=service.getFirstId(firstDropdownNames[i]);
Pair Pair=新对(ProjectId、firstDropdownId、firstDropdownNames[i]、secondDropdownId、secondDropdownNames[i]);
服务。保存(对);
}
}
否则{
字符串firstDropdownId=service.getFirstId(firstDropdownNames[i]);
字符串secondDropdownId=service.getSecondId(secondDropdownNames[i]);
Pair Pair=新对(ProjectId、firstDropdownId、firstDropdownNames[i]、secondDropdownId、secondDropdownNames[i]);
服务。保存(对);
}
response.setMessage(“保存成功”);
}
如果

那么

int j= firstDropdownNames.length - secondDropdownNames.length;
因此,j永远是3

i==j
仅当i==3时才为真。您可能希望替代i==j的是:

if(i >= secondDropdownNames.length)
(假设secondDropdownNames.length较短,否则使用firstDropdownNames.length)


还有,firstDropdownNames和secondDropdownNames的类型是什么。看起来它们是数组。如果是,那么您必须小心,因为如果secondDropdownNames.length==4,您尝试secondDropdownNames[i]=null当i>=4时,您将获得非法参数异常,因为您试图在数组边界之外设置值。

是的,情况就是这样。因此,如何解决获取非法参数异常的问题,因为我将在数组边界之外设置值。这两个参数都是数组,在保存时我没有o当i>secondDropDownNames.length时,传递secondDropDownNames[i]=null将引发非法参数异常。您可能不需要调用“firstDropdownNames[i]=null”或“secondDropDownNames[i]=null”;相反,请尝试这样创建对:对对=新对(ProjectId,null,null,secondDropdownId,secondDropDownNames[i]);或新的一对(ProjectId、firstDropDownId、firstDropdownNames[i]、null、null);
if(i >= secondDropdownNames.length)