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

2024-11-26 13:35:34
推荐回答(2个)
回答1:

现在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 queryGisRadio(String start,String end,String user,String key,PageObj pageObj){
            Map rsMap = new HashMap();
            //得到所有广播
            List allRadioList = gisRadioConfDao.queryGisRadio(start, end, user, key);
            /**
             * 过滤条件:只能看到自己机构及子机构的广播
             */
            //查询用户所在机构及其子机构
            AuthInfo authInfo = SessionContent.getAuthInfoLocal();
            List org = new ArrayList();
            org = orgService.getAllOrgsByUserId(authInfo.getUserId());
            //Map queryMap = gisRadioConfService.queryGisRadio(start, end, user, key, pageObj);
            //List allRadioList = (List) queryMap.get("rows");
            
            //最终要显示的广播
            List resultRadioList = new ArrayList();
            int rSize=allRadioList.size();
            int oSize=org.size();
            //根据部门id相等来进行过滤
            for(int i=0;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                //将部门id数组转换成long类型数组                
                    relationpartArrayL[k]=Long.parseLong(relationpartArrayS[k].trim());
                }
                for(int j=0;j                for(int t=0;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 rows = new ArrayList();
            if(resultRadioList.size()>endIndex){
                for(int i=startIndex;i                rows.add(resultRadioList.get(i));
                }
            }else{
                for(int i=startIndex;i                rows.add(resultRadioList.get(i));
                }        
            }
            //pageObj.setTotal(resultRadioList.size());
            rsMap.put("rows", rows);
            rsMap.put("total", rSize);
            return rsMap;
            
        }

回答2:

后台排序就使用数据库的order by呗,前台调整,可以通过调整修改order by标识