NXZFW项目总结(一)

  首先做个需求分析。本项目主要是做一个手机抽奖功能,web端和手机端。手机端使用wap页面来实现,所以都是html5来写的,保证能很好的自动适应各种不同型号的手机分辨率。但是兼容性方面并没有太好的心得,在输入手机号界面,苹果手机上测试没用问题,安卓自带的浏览器在点击输入栏后会自动弹出键盘,便会讲图片顶上去,占用了内容的部分。所以就会乱掉。但是在安卓手机上用UC就可以正常。

   直接开始代码的分析吧。框架用的是Spring+SpringMVC+Mybatis.前端用的是jquery UI.框架已经很完善了。但是还不算很了解,所以在这里重点分析。

    首先是最基本的POJO.这里没什么好讲的,不过有些技巧可以用在这里,到了用到的地方再写吧。

    与POJO对应的就是mybatis的配置了吧。虽然一开始学的是mybatis,但是并不是很了解,对于SQL的语句还是有些了解的,但是在这里自己写,很容易出错。之前在自己写的框架中这里经常报错,所以只好用了hibernate。但相对于灵活性来讲,还是感觉mybatis要好一些。

   然后会有个Form表,现在还不知道是做什么用的。内容完全与POJO一样,但是在controller中从没调用过POJO,都是调用Form的,这算是分离吗?POJO只用来与mybatis做映射?嗯....还没搞懂。

   然后便是Service和BO了,这里和之前学的差别不是很大,类似一个DAO,一个Impl。

   再上面就是Controller了。虽然是用的SpringMVC,但是并没有用注解的方式,这里用的是绑定的方式,每家一个POJO类,都需要到Spring-service.xml中做配置,例如

<bean id="aaAnswerService" class="com.shenlan.nxzfw.service.AaAnswerBO"/>

再到Spring-web.xml中做个绑定。

        <prop key="/aaAnswer.do">aaAnswerController</prop>

<bean id="aaAnswerController" class="com.shenlan.nxzfw.control.AaAnswerController"/>

      这样以后访问地址就可以用aaAnswer.do?method=?

      但是感觉还是用注解比较方便。

      还有一点是,把JSP页面都放在WEB-INF下面,每个页面的访问都需要controller的处理,不能直接通过路径来访问,这样能增加安全性。


    框架方面的事情就这些吧。从基本的页面修改方面来说吧。

    首先是create。做一个添加功能,首先是页面的跳转aaAnswer.do?method=create跳转到添加页面。在跳转的时候传递addObject("createAaAnswerForm",new AaAnswerForm());创建一个视图,在页面上可以通过${createAaAnswerForm.字段名}来获取对象内容。相当于之前做的一个查询,把对象全都到页面,方便传值。

    create方法只是做一个跳转。添加方法为Save方法,在这里经常用到的是自动设置添加人(当前用户),设置添加时间。先获取session中的用户名:

    AaUserForm loginUser = (AaUserForm)request.getSession().getAttribute(Constants.USER_IN_SESSION);

    aaQuestionForm.setCreateName(loginUser.getUserNo());

    设置时间为当前系统时间只需要new data();  aaQuestionForm.setCreateDate(new Date());

    接下来执行封装好的方法就行了。

    做好添加下面就是要做显示了,首先也是一个跳转,aaAnswer.do?method=jqlist,跳转到jqlist页面,方法与create基本相同,也是传一个对象集合过去。但是JqGrid通过json放方式获取数据需要一个getdatalist方法。

        public ModelAndView getDataList(HttpServletRequest request, HttpServletResponse response,String questionId) throws Exception {
    DataRequest dataRequest = new DataRequest();
      BindingResult result = bindObject(request, dataRequest);
     
      AaAnswerForm aaAnswerForm= new AaAnswerForm();
    result = bindObject(request, aaAnswerForm);
    dataRequest.setObj(aaAnswerForm);
    DataResponse<AaAnswer> dataResponse = new DataResponse<AaAnswer>();
    Page pageData = aaAnswerService.findSinglepageList(dataRequest,dataRequest.getPage(), dataRequest.getRows());
      List<AaAnswer> list = (List<AaAnswer>) pageData.getResult();
     
      dataResponse.setPage(dataRequest.getPage());
      dataResponse.setTotal(pageData.getTotalPageCount());
      dataResponse.setRecord(pageData.getTotalCount());
      dataResponse.setRows(list.size());
     
      dataResponse.setSearch(dataRequest.getSearch());
      dataResponse.setSidx(dataRequest.getSidx());
      dataResponse.setSord(dataRequest.getSord());


      request.setAttribute("questionId",questionId);  
      System.out.println(questionId);
      dataResponse.setList(list);
      new JqGirdJsonView(request, response, dataResponse);
return null;
   
    }

      主要是数据传递分页信息,排序等。在这里service方法中需要再做添加。切记切记!!!!

     Page findSinglepageList(DataRequest dataRequest,int pageno, int pagesize);

   同时BO 

       public Page findSinglepageList(DataRequest dataRequest, int pageno,int pagesize) {
PageBean pageBean = new PageBean();

pageBean.setData(dataRequest.getObj());
if(dataRequest.getSidx()!=null&&!dataRequest.getSidx().equals("")){
pageBean.setOrderBySql(" order by "+ dataRequest.getSidx() + " " + dataRequest.getSord());
}

if(dataRequest.getFilters()!=null&&!dataRequest.getFilters().equals("")){
pageBean.setConditionSql(new JqGridParseFilters().constructWhere(dataRequest.getFilters()));
}

Integer count = (Integer)giantdsDAO.getSqlMapClientTemplate().queryForObject("getAaAnswerCount",pageBean);
int begin = PageUtil.getRecordBeginPosition(pageno, count,pagesize);
int end = PageUtil.getRecordEndPosition(pageno, count,pagesize);
pageBean.setBegin(begin);
pageBean.setEnd(end);


List<AaAnswer> list = giantdsDAO.getSqlMapClientTemplate().queryForList("findAaAnswerPageList",pageBean);
return new Page(begin-1,count,pagesize,list);
}

    这样才能分类获取数据,例如’aaQuestion.do?method=getDataList&字段名=‘+?

    当然,还需要colNames与colModel等长,在每个字段设置好后,最后一个一定不能添加“,”,虽然在chrome中没问题,但是在IE中会出现解析问题。

    显示方面就没太多问题了。

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值