前面介绍了环境部署和项目所使用的相关技术,基于ssm框架开发,编码分为前台页面和后台逻辑两部分,由于主要的学习方向是后台方向的,前台页面的代码可能会比较冗余,因为是大量复用模板代码,为了方便阅读,只描述重要功能的开发。
前台页面的开发
一.先上效果图然后介绍一下功能
1.忽略Errors栏目,这里没有开发该功能,预先是为了统计系统错误情况
2.网页上方是一个从服务器获取到的系统时间,方便根据服务器时间设定活动时间(商品秒杀的时间都是根据服务器的时间进行判断的)
3.商品表格中的按钮有:update、delete、detailed、submit
update:若点击第一行update按钮,在下方输入栏显示第一行商品信息,再修改输入内容,最后点击submit提交请求,会在mysql中将对应goods_id的商品信息进行更新。
delete:若点击第一行delete按钮,出现提示框“是否确认删除该商品”,点击确认后在mysql中删除该商品。
detailed:若点击第一行detailed按钮,出现富文本框(可插入图片,修改字体等)和“提交”按钮,在富文本框输入详细资料后,点击“提交”后,在mysql中更新商品详情信息。(以便于后期查看商品详情的时候直接获取详细信息包括文本格式等)
submit:该按钮处理了两类事务,更新操作或插入操作,当输入框中的goods_id为空时,触发插入操作(其实本可以在前台使用js进行处理,当时为了赶进度是在后台进行操作的区分),即输入除goods_id栏的其他所有商品内容、点击提交后,在mysql中插入商品信息。
总的来说,这些功能模块是非常基础的,增删改查,比较核心的是图片上传的部分。
二、simditor富文本框的使用
1.html代码
<div id="editText" style="display:none;">
<section id="page-demo">
<textarea id="txt-content" data-autosave="editor-content" autofocus required>
(可设置文本内容)
</textarea>
</section>
<input id="whichGoods" type="hidden" value="" />
<input id="infoSubmit" type="submit" value="提交详细资料" οnclick="" />
</div>
//第四行的内容是富文本框生成时里面的默认内容,或者在js中设置
//第七行的hidden input是为了选择更新哪一个商品的详情
其他可使用功能的相关参数请查阅Simditor
2.js代码
var editor = new Simditor({
textarea: $('#txt-content'),
placeholder: '这里输入文字...',
toolbar: toolbar,
pasteImage: true,
defaultImage: '/simditor/images/image.png',
upload: {
url: '/KillSystem/admin/upload.do',
params: null,
fileKey: "upload_file",
connectionCount: 1,
leaveConfirm: "正在上传,确定要取消上传文件吗?"
}
});
//defaultImage,顾名思义是默认显示的图片,参数是需要提供一个图片的url
//upload是文件上传的配置内容:url参数是文件上传url、fileKey参数是后台接受到的文件名
后台服务器端的开发
一、controller层代码
分页查询的处理器
// 分页查询商品表
// 返回ModelAndView对象,包含jsp视图和pageInfo对象
@RequestMapping("/toAdminHome.do")
public ModelAndView toAdminHome(Goods goods, String pageNo, HttpSession session, HttpServletRequest request) {
// 是否登陆管理员
if (session.getAttribute("username") == null && session.getAttribute("passwd") == null) {
return new ModelAndView("fail", null);
}
//默认返回第一页的内容
int pageno = 1;
if (pageNo == null) {
pageno = 1;
} else {
pag