java开发新闻门户网站信息的发布和排序,后台是进行管理。

请大神帮我讲解下,是如何实现后台排序,前台自动调整的(如我表达的不够清晰,敬请理解)
最新回答
我咋那么萌捏

2024-11-23 16:57:36

现在java开发很多都用到spring mvc,我现在做的项目也是,我就按照mvc的来说。

  1. 首先你的代码在开发工具中一定是有结构层次的,你会建出平行的几个包写后台代码:

    a.controller;a.service;a.dao;a.dto;a.daoImpl。具体哪个包有什么作用就不细说了,然后你会在webapp下建立jsp和js文件。

  2. 这时候就可以解决你的问题了,例如你的Jsp,css,js文件都写好了,页面布局很清晰,运行代码可以看到一个完整的页面,但是用户可能有各种操作,就拿我做的这个项目代码来说,我做的有个页面的信息是分层次的,例如现在有三个职级,1,2,3;1职级的可以看到所有信息,2职级的只能看到2和3的,3只能看到自己的;这种需求就需要在后台写代码来实现了,一般是在service里面写,我把easyUI的分页功能重写了一下,然后就可以实现这个需求了,下面是代码

  3. public Map<String,Object> queryGisRadio(String start,String end,String user,String key,PageObj pageObj){
            Map<String, Object> rsMap = new HashMap<String, Object>();
            //得到所有广播
            List<GisRadioDto> allRadioList = gisRadioConfDao.queryGisRadio(start, end, user, key);
            /**
             * 过滤条件:只能看到自己机构及子机构的广播
             */
            //查询用户所在机构及其子机构
            AuthInfo authInfo = SessionContent.getAuthInfoLocal();
            List<Org> org = new ArrayList<Org>();
            org = orgService.getAllOrgsByUserId(authInfo.getUserId());
            //Map<String,Object> queryMap = gisRadioConfService.queryGisRadio(start, end, user, key, pageObj);
            //List<GisRadioDto> allRadioList = (List<GisRadioDto>) queryMap.get("rows");
            
            //最终要显示的广播
            List<GisRadioDto> resultRadioList = new ArrayList<GisRadioDto>();
            int rSize=allRadioList.size();
            int oSize=org.size();
            //根据部门id相等来进行过滤
            for(int i=0;i<rSize;i++){
                String[] relationpartArrayS=null;//初始数组
                long[] relationpartArrayL=null;//转换后数组
                int flag=0;
                //得到库里的RelationDepartment,分割成一个个的id存入一个数组
                relationpartArrayS = allRadioList.get(i).getRelationDepartment().split("\\|");
                int len = relationpartArrayS.length;
                relationpartArrayL = new long[len];
                for(int k=0;k<len;k++){
                    //将部门id数组转换成long类型数组                
                    relationpartArrayL[k]=Long.parseLong(relationpartArrayS[k].trim());
                }
                for(int j=0;j<oSize;j++){
                    for(int t=0;t<len;t++){
                        if(org.get(j).getOrgId()==relationpartArrayL[t]){
                            //将满足条件的list元素放入结果list里面
                            resultRadioList.add(allRadioList.get(i));
                            flag++;
                            break;
                        }
                    }
                    if(flag==1){
                        break;
                    }
                }
            }
            int startIndex = (pageObj.getPage()-1) * pageObj.getRows();
            int endIndex=startIndex+pageObj.getRows();
            //要放在每一页上的广播
            List<GisRadioDto> rows = new ArrayList<GisRadioDto>();
            if(resultRadioList.size()>endIndex){
                for(int i=startIndex;i<endIndex;i++){
                    rows.add(resultRadioList.get(i));
                }
            }else{
                for(int i=startIndex;i<resultRadioList.size();i++){
                    rows.add(resultRadioList.get(i));
                }        
            }
            //pageObj.setTotal(resultRadioList.size());
            rsMap.put("rows", rows);
            rsMap.put("total", rSize);
            return rsMap;
            
        }
挂科比挂科难

2024-11-23 14:52:17

后台排序就使用数据库的order by呗,前台调整,可以通过调整修改order by标识
追问
那怎么在页面上调整的,后台管理页面进行排序,前台模块就自动变了