Springmvc中 controller如何返回不同的modelandview?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Springmvc中 controller如何返回不同的modelandview?

2016-03-06 10:15:54 3569 1

如下程序,Springmvc中 controller可以在内部加一个if语句,返回不同的modelandview吗?

@RequestMapping(value = "/index")
public ModelAndView index(Page<ZqbpContract> p2, ZqbpContract params,
        HttpServletRequest request,String id,String name,String god,String oneid,String twoid,String s) throws SQLException {
    ModelAndView view = new ModelAndView("/Admin/Contract/contract-index");
    HttpSession session = request.getSession();
    ZqbpUser user = (ZqbpUser) session.getAttribute(ConfigUtil.USER);
    ConnectionSource connectionSource = DBUtil.getConnectionSource();
    Page<ZqbpContract> p;
    
    String l="";
    
        
    
    String sql = "select contract_id,contract_name,contract_filename,contract_money,contract_num,contract_status,contract_type,contract_url,con_money_fangshi,con_xitong,create_time,stop_time,user_id,custom_id,flow_id,(select product_name from zqbp_product where product_id=con_chanpin) as con_chanpin,(select sum(money) from zqbp_con_m where con_id=contract_id) as create_user from zqbp_contract where status='0'";
    
    int a=0;
    if(id!=null&&id!=""){
        a=Integer.parseInt(id.toString());
        if(a!=2&&a!=3&&a!=4&&a!=5){
        sql+=" and custom_id like '%"+id+"%'";
        }
    }
    
    if(god!=""&&god!=null){
        int x=Integer.parseInt(god);
        if(x==1){
        List<ZqbpContract> c=(List<ZqbpContract>)session.getAttribute("list6");
        for(ZqbpContract t:c){
            l+="'"+t.getContractId()+"',";
        }
        if(l.endsWith(",")){
            l=l.substring(0, l.length()-1);
        }
        sql+=" and contract_id in ("+l+")";
        }else if(x==2){
            Page<ZqbpContract> c=(Page<ZqbpContract>)session.getAttribute("ct");
            if(c.getItem()!=null){
            //如果判断为空的话,我想返回不同的页面应该怎么写啊?@@@@@@@@@@@@@@@@@@@
            for(ZqbpContract t:c.getList()){
                System.out.println(123);
                l+="'"+t.getContractId()+"',";
            }
            if(l.endsWith(",")){
                l=l.substring(0, l.length()-1);
            }
            sql+=" and contract_id in ("+l+")";
            }else{
                sql+=" and contract_id in ('zqbp_contract')";    
            }
        }else{
            List<ZqbpContract> c=(List<ZqbpContract>)session.getAttribute("tac");
            
            for(ZqbpContract t:c){
                l+="'"+t.getContractId()+"',";
            }
            if(l.endsWith(",")){
                l=l.substring(0, l.length()-1);
            }
            sql+=" and contract_id in ("+l+")";
            
        }
    }
    if(oneid!=""&&oneid!=null){
        sql+=" and contract_id='"+oneid+"'";
    }
    if(twoid!=""&&twoid!=null){
        sql+=" and contract_id='"+twoid+"'";
    }
    String aa="";
    if(a==3){
        List<ZqbpContract> cc=(List<ZqbpContract>)session.getAttribute("aa");
        if(cc.get(0).getContractId()!=null){
            for(ZqbpContract ccc:cc){
                aa+="'"+ccc.getContractId()+"',";
            }
            if(aa.endsWith(",")){
                aa = aa.substring(0, aa.length() - 1);
            }
            sql+=" and contract_id in ("+aa+")";
        }
    }
    if(a==2){
        List<ZqbpContract> cc=(List<ZqbpContract>)session.getAttribute("list1");
        if(cc.get(0).getContractId()!=null){
            for(ZqbpContract ccc:cc){
                aa+="'"+ccc.getContractId()+"',";
            }
            if(aa.endsWith(",")){
                aa = aa.substring(0, aa.length() - 1);
            }
            sql+=" and contract_id in ("+aa+")";
        }
    }
    if(a==4){
        List<ZqbpContract> cc=(List<ZqbpContract>)session.getAttribute("list2");
        if(cc.get(0).getContractId()!=null){
            for(ZqbpContract ccc:cc){
                aa+="'"+ccc.getContractId()+"',";
            }
            if(aa.endsWith(",")){
                aa = aa.substring(0, aa.length() - 1);
            }
            sql+=" and contract_id in ("+aa+")";
        }
    }
    if(a==5){
        List<ZqbpContract> cc=(List<ZqbpContract>)session.getAttribute("list3");
        if(cc.get(0).getContractId()!=null){
            for(ZqbpContract ccc:cc){
                aa+="'"+ccc.getContractId()+"',";
            }
            if(aa.endsWith(",")){
                aa = aa.substring(0, aa.length() - 1);
            }
            sql+=" and contract_id in ("+aa+")";
        }
    }
    String dat="";
    String u="";
    if(name!=null&&name!=""){
        
            sql+=" and stop_time like '%"+name+"%'";
    }
    if(s!=null&&s!=""){
        
        sql+=" and custom_id like '%"+s+"%'";
}
    if(p2.getPage()==1){
        p2.setPage(0);
    }
    p = DBUtil.getMySqlPageSql(ZqbpContract.class, p2, sql);
    p2.setList(p.getList());
    p2.setPage(p.getPage()<=0?1:p.getPage());
    p2.setPageCount(p.getPageCount());
    p2.setTotalCount(p.getTotalCount());
    
    for(ZqbpContract c:p2.getList()){
        if(c.getCreateUser()!=null && !"".equals(c.getCreateUser())){
            c.setCreateUser(Integer.parseInt(c.getContract_money())-Integer.parseInt(c.getCreateUser())+"");
        }else{
            c.setCreateUser("未收款");
        }
    }
    view.addObject("page", p2);

    return view;
}
SQL
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:54:08

    这里的SQL,业务逻辑,和视图控制都耦合在一起了。
    你这样不好分离也不好重构。
    先重构分层一下,看看。
    或者直接设置新的视图
    view.setView(viewName);

    0 0
相关问答

4

回答

请教一个范围查询的问题

小文文文 2019-06-14 14:37:01 116376浏览量 回答数 4

5

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 129484浏览量 回答数 5

10

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 123042浏览量 回答数 10

37

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 92954浏览量 回答数 37

1

回答

通过spark-thriftserver读取hive表执行sql时,tasks 数量怎么设置

游客iwhrjhvjoyqts 2019-07-05 15:30:22 114899浏览量 回答数 1

38

回答

[@饭娱咖啡][¥20]对于慢sql有没有什么比较实用的诊断和处理方法?

江小白太白 2018-10-30 18:47:38 143821浏览量 回答数 38

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 133126浏览量 回答数 2

8

回答

flink sql 支持checkpoints吗?

游客izljdlkgbdwfc 2019-07-10 17:46:37 125659浏览量 回答数 8

9

回答

HaoSQL,好用的SQL等数据库一键包发布!

梦丫头 2017-11-14 15:20:55 71959浏览量 回答数 9

78

回答

【2013.9.5修正版图文】新手如何使用阿里云(linux)服务器建站(搬站)

姑苏公子 2013-04-11 00:39:13 108653浏览量 回答数 78
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载