日期:2014-05-18  浏览次数:20632 次

关于checkbox多个选项查询的问题,谢谢。
现在的需求是这样的,
前台页面上有三个checkbox,
这三个checkbox分别对应三种查询,XX YY ZZ 这三种查询 查询的表不一样。

代码如下:

public String add(){
  String type[]=["10","20","30"];//由页面传递过来,组合为8种checkbox的组合 一个个的if-else太麻烦了
  //["10","20","30"]、["10","20"]、["10","30"]、["20","30"]、["10","20","30"]、["10"]、["20"]、["30"]
 if(type.equals("10")){
int number = doXXX();
if(number>100){
   return "too big";
}else{
list = doXX();
return "something";
}

 }else if(type.equals("20")){
int number = doYYY();
if(number>100){
   return "too big";
}else{
list = doYY();
return "something";
}

 }else if(type.equals("30")){
int number = doZZZ();
if(number>100){
   return "too big";
}else{
list = doZZ();
return "something";
}
 }else if(type.equals("10,30")){
int number1 = doXXX();
int number2 = doZZZ();
if((number1+number2)>100){
   return "too big";
}else{
list = doXX();
list = doZZ();
return "something";
}
 
 }else if(){
 
......
 }



改进之后如下:我在集合里面迭代,有值的时候执行if,但是这种判断
number数量就不好判断了,请问该怎么弄,谢谢。

public List<User> add(){
  String type[]=s;//由页面传递过来,组合为8种checkbox的组合 
  //["10","20","30"]、["10","20"]、["10","30"]、["20","30"]、["10","20","30"]
  for(String tp:s){
if(tp.equals("10")){
int number = doXXX();
if(number>100){
   return "too big";
}else{
list = doXX();
return "something";
}
 }
 if(tp.equals("20")){
int number = doYYY();
if(number>100){
   return "too big";
}else{
list = doYY();
return "something";
}
 }
 if(tp.equals("30")){
int number = doZZZ();
if(number>100){
   return "too big";
}else{
list = doZZ();
return "something";
}
 }
  }
  

}

------解决方案--------------------
引用:
Quote: 引用:

只有7种组合吧?
【10】,【20】,【30】,【10,20】,【10,30】,【20,30】,【10,20,30】。