APP管理系统
首先,拿到这个项目后,我们分析一下项目需求,APP管理系统,我们可以分为两大部分。
开发者管理平台与后台的管理。
开发者管理平台可以是开发者自己开发的app进行在平台中的上传。
而后台的作用可以用来审核app是否违规或者是否符合上架要求。

从开发者平台开始设计:可以分为:
登陆 注销、
查询APP信息列表、
修改APP基础信息、
删除APP、
新版APP版本信息、
修改APP最新版本信息、
新增APP基础信息、
查询APP信息、
APP上架、
APP下架。

首先,我们使用Mevan来搭建SSM框架。静态网页jsp的话,我们使用素材。我们先在Mevan中的pom.xml文件中进行导包,来引入本项目所需要的架包。
大致搭建完Mevan架构后,我们需要对资源文件的配置。resource文件夹,导入logj的配置文件,与连接数据库信息的配置及文件搭建好,接着就可以吧素材静态网页copy到Web文件下,我们就可以对项目进行搭建SSM框架了,mybatis-config.xml、application-*.xml、springmvc-servlet.xml、web.xml等配置文件的编写(这里就不进行多说了)
整个项目框架搭建完成后,我们先看一下静态页面的信息,简单了解页面的作用与实现。
打开数据库查看表,将表中的字段一一编写成为项目中的实体类。与创建文件所需要的包名。
那么首先框架搭建完成后,我们要配置好tomcat服务器,进入APP管理平台的首页。
我们可以看到,首页的有开发者管理管理平台与后台管理平台。那么我们就需要对页面的跳转进行编写。在框架下搭建完成的包名Controller中创建开发者相对应的类。标注Controller注解,
简单创建跳转页面的代码,将网页中的跳转地址进行转换。
进入开发者平台,跳转的是登陆页面,我们就需要数据库与项目的交互。来判断用户输入的是否正确。
那么明白需求后,我们首先就是来编写对数据的真实性检验的sql编写,我们所采用的首先我们先查询账号是否在在,如果存在则返回该数据对象。我们通过返回的对象来比较密码是否正确。
这样的好处是,我们可以通过页面的前后端的交互,获取表单中的账号密码来区分账号密码的不同错误,以便可以做出更好的提示给用户展示。
步骤 :1.编写SQL语句的xml文件
2.编写service的文件调入Sql
3.在Controller中调入service
如果正确则进入平台则把该用户信息存入session中,以便方便后期使用。

当前用户的注销:需求点击注销返回登陆页面,销毁session
步骤:
1.a标签点击跳入Controller中编写的代码
2.在代码中销毁当前用户的信息
3.return返回 登陆页面

点击维护APP进入当前用户的所发布的APP信息列表,需求:
这是一个多条件查询的列表、登入页面时,查询所有当前用户的APP信息。
首先,我们点击维护APP进入Controller中让其跳入信息展示的静态页面。
我们看到这是一个六个条件的查询表。通过名称模糊查询、APP状态查询、所属平台的查询、通通过一级分类、二级分类、三级分类进行联动查询。
那么 我们最先做的时在页面加载时,让app当前状态与所属平台的所有信息动态展示到下拉列表框中。
有两种方式可以实现动态的插入
步骤:
1.编写Sql文件加入xml中
2.加入serivice中
3.在controller中调用并转发
4.是同EL表达式在静态页面中展示
或者:
1…在Controller中调用成JSo格式
2.使用ajax技术在页面加载时调用
3.在ajax返回后的数据通过js技术展示在页面中。
这样的话APP状态与平台的动态内容就从数据库中读出来了

接着是一二三级分类菜单的联动查询、所谓联动,就是最开始只有一级如果选择后则二级菜单跟着出来,三级菜单类似二级。
那么我们需要做的也是要先把一级分类的菜单通过刚才的方法查询到页面上。接着就是二级三级菜单的出现。
步骤:

  1. 我们通过一级分类所选择的ID
    2.通过js的的cheng事件来进行Ajax的异步请求
    3.也是在Controller中的ResponseBody注解转换为实体中返回到Ajax后进行js属性的.html();编写。
    然后就是也是在页面的列表展示与各种查询了
    我们在数据库中编写多表关联并查询的代码 where条件跟各种查询条件
    在放入mybatis中时通过mybatis的特性进行对SQL语句的优化。
    再调用页面时,于Controller页面中将数据转发到展示页面通过EL表达式将其展示在页面上
    当然,也是少不l分页的,按照时间进行降序的查找。
    分页的话少不了我们的这个公式:(当前页数-1)*当前页面最大页数
    最好好的办法还是分页的实体类 来进行调用 更方便。
    当然 我们这个进入展示的就是所有的信息。我们通过网页中的点击按钮让其跳入COntroller
    中的展示信息的方法中,返回将展示该查询所返回的app信息
    最最重要的时返回该信息后我们之前的查询条件就没有了,所以我们要进行数据的回显。
    如果不进行回显的话,那么如果该类的信息只有一个分页的话还好,要是分类有很多的话。那么程序就有很大BUG。
    所以回显很重要。
    所以我们进行跳转的时候要把当前选择要查询数据的值进行包装跳转,跟着页面跳转再度的跳回本页面时,对表单中的元素进行一个赋值的操作,这样就做到了简单回显效果。
    (对于信息页面的简单修改就再次不做详细讲解)
    下面的话就是新增APP的基础信息
    点击新增APP通过COntroller跳入新增的页面。
    修改新增页面表单中name属性给其赋予实体类所对应的属性。因为框架会自动装配。
    让后就是设置与刚才的信息展示页面的类似的App信息的 平台和分类菜单的联动查询。
    具体步骤的话与信息管理平台基本一致。只需要简单改动页面即可。
    状态的话刚创建app信息状态为待审核。
    添加最大的问题是将文件上传 ,因为是图片格式的文件。
    首先我们先把帮表单的属性增加: enctype=“multipart/form-data”
    配置文件的 文件上传 也也要给他一个id,才能更好的使用它:
    步骤:
    1.编写SQL语句写入xml文件中
    2.调用,在方法中我们需要使用文件上传的专用代码。首先获取与之匹配的实体类属性。
    还有获取到的文件值。
    2.我们就可以判断本次上传是否上传东西没有上传则不需要走上传的流程,如果上传文件后,我们先获取文件名称通过把上传文件名称获取文件后缀与本地路径。
    3.通过后缀我们可以判断是否是图片格式的文件 如果是则进入下一步,如果不是则返回错误的信息。上传文件的最大大小我们可以从配置文件中设置。获取相对路径与服务器存储路径获取到。对文件进行保存(创建这个文件在服务器端)。
    如果一切成功则跳回展示所有app信息(从数据库中)。
    如果失败则还是返回该增加页面。

对于修改app信息的页面:
1.在登入成功后我们看到app信息的展示,如果有那么点不如意的就需要修改了,那么这个页面我们就需要在改信息的后面点击操作修改信息上让其跳入Controller中的方法并接受那个app信息的ID来查找该Id的所有程序信息。
2.这个时候我们就通过ID将信息查出后,在页面加载是将信息展示到页面的表单中,类似回显效果,
步骤:
1.通过ID查询本条信息。
2.将信息展示在表单中
3.对文件的apk显示进行el表达式的设计 如果传过来的值是空值的话则显示文件域,从而进行上传操作,如果不是空值,则显示将该图片展示在当前页面上、并且还有一个删除的a标签。
如果有值点击删除的话。我们可以先把图片进行隐藏并展示文件域。
真的要删除的话则需要在点击删除后不进行从新上传而确认修改则会将文件域对应的数据修改为空值。
4.编写修改的SQL语句在Mybatis中
5.将数据像增加一样引入方法中(类似于增加信息的方法)只是将最后的调用增加方法改成修改的方法。
再修改中除了apk的名称与该信息的状态不容许修改意外,其余接可以修改。
像平台与分类菜单的动态加载,也就是增加与列表展示中的类似代码。大部分通过js、、Ajax技术进行的操作。

app信息的新增版本
在创建完新的app信息之后,我们需要进行版本的增加。
老样子,我们在app信息的展示页面中点击该信息的详细操作下的新增版本,通过controller
跳入版本的页面,版本的新增页面与修改版本是用一个页面我们在通过不同的点击返回的值来确定是否是新增还是修改。
还是分两部分
查看历史版本列表。
新增版本的信息。

通过controller跳入时通过ID查询该app信息的所有版本信息。通过EL表达式:将值赋值.
有则有,没有则算。(如果有的话则展示在页面上,如果没有也就什么都都不展示。)
接着就是版本的新增处理。我们先修改一下表单所需要获取的值或表单提交页面和一些别的配置 版本的话上传的是apk格式的文件,所以我们也要和增加app信息一样来改变表单的提交格式。
静态页面编写成功后,我们就可以编写根据需求来编写sql语句了,将编写后的语句放入程序中。
在其 进入我们后,需要将表单的提交地址改为controller中的方法,
在方法中接受表单提交来的数据,来进行相关的操作,看是有无上传文件,版本如果没有文件,也进行驳回,对此我们也要灵活运用的所学的jsr303约束。进行对服务器的数据安全检查。

app版本的修改
需求不清楚, 是点击那个版本修改那个版本吗?还是只是在最新的版本上做修改
修改也是很简单的。三部
查看历史版本列表。
通过controller跳入时通过ID查询该app信息的所有版本信息。通过EL表达式:将值赋值.
有则有,没有则算。(如果有的话则展示在页面上,如果没有也就什么都都不展示。)
将原来的值回滚到页面上。
进行修改通过方法来是实现对数据库的操作。

app信息的的 展示页面 很是很简答的,写完修改页面的步骤后,我们就可以照搬。
将点击数据的信息一一展示到页面上,这是展示页面也就修改完成了

app信息的删除操作
点击删除。提出js弹窗
是否确定要删除
如果要,则通过ajax技术来进行对数据库的删除 最后返回true或flase来判断是否删除成功。

上下架的话 ,因为后台平台的未完成,我们不能对app信息进行管理审核。所以 我们就对本次数据原有的审核通过的基础上,使用jstl来判断是否能上下架,并修改已经上下架的value
以上就是本次项目的一半内容。