商城--后台 首页 管理员列表展示

首页

    使用ajax设计后台,每个页面都要结构完整,并且引入js,css不引入好像没问题。
    tp5默认后台只有一个index模块,而且比较不全。
    我们可以把根目录下的build文件拷贝一份到application中,然后按需要修改build中的文件,使用命令行工具`php think build` 生成我们需要的前台目录和后台目录,但是里面的控制器是没有后缀的,直接删掉,自己来重新生成。
    有了首页控制器,我们再创建首页控制器中的操作,在操作中来渲染后台的首页视图(一个控制器对应一个文件件,但一个控制器可以有多个操作),当然我们的视图文件要放到view的对应文件夹中(在配置_PUBLIC_时,位置是在config里面的view_replace_str),这样后台首页就出来了,基本上后台首页展示一些版本信息和版权信息。

管理员列表展示

    这里再创建一个管理员列表控制器(我希望控制器分工明确),类似上面首页的步骤,我们可以得到一个死气沉沉的管理员列表,因为这是死的页面,没有从数据库读数据。
    所以在渲染视图之前,我们需要到数据库中把数据查出来(有三种层次来查数据:原生查询,链式查询,orm,我使用的是orm查询。注意使用前两种查询时,要记得引入think/Db;最后这种记得引入对应的表模型,和表同名,不带前缀,首字大写,orm对象有get()和all()方法,一个得到的是对象,一个得到的是二维数组),
    然后渲染视图的时候把数据传到视图,接着借助模板引擎处理变量的套路来输出数据(
对标量的输出{$cat},对二维数组的输出
{volist name="传来的名字" id="admin"}
    <td>{$admin.username}</td>
    <td>{$admin.password}</td>
{/volist}

如此便完成了管理员列表页

### 使用 SSM 框架实现图书商城后台管理系统 #### 1. 系统概述 SSM(Spring + Spring MVC + MyBatis)是一个广泛应用于Web应用开发的技术栈组合。通过集成这三个框架,可以高效地构建功能丰富的Web应用程序。对于图书商城后台管理系统而言,该系统旨在为管理员提供一系列操作接口,以便于管理和维护图书信息。 #### 2. 功能模块设计 根据需求分析,图书商城后台管理系统应具备如下核心功能: - **书架管理**:支持查看、新增、编辑以及移除书架条目[^1]。 - **用户权限控制**:区分普通用户与管理员角色,确保只有授权人员能够访问特定资源并执行相应动作[^3]。 - **书籍详情管理**:允许管理员录入新书记录,更新现有书籍的信息字段,如名称、作者、出版日期等,并能处理下架请求。 - **订单审核**:审查顾客提交的购书申请,确认无误后批准交易流程继续推进;反之,则需给出拒绝理由反馈给客户。 - **销售报表生成**:定期汇总各类统计数据,帮助管理层了解业务动态趋势,辅助决策制定过程。 #### 3. 技术选型说明 为了满足上述要求,在技术层面选择了流行的Java EE解决方案——即采用Spring作为依赖注入容器和服务层逻辑处理器;借助Spring MVC来负责前端控制器模式下的HTTP请求分发机制;最后利用MyBatis完成持久化层的数据映射工作,从而形成完整的三层架构体系结构[^2]。 #### 4. 关键代码片段展示 ##### 数据库表定义 (SQL) ```sql CREATE TABLE `book_shelf` ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ##### BookShelf实体类 (Java) ```java public class BookShelf { private Integer id; private String name; private String description; // Getters and Setters omitted for brevity } ``` ##### Mapper接口编写 (Java) ```java @Mapper public interface BookShelfMapper { @Select("SELECT * FROM book_shelf WHERE id=#{id}") public BookShelf selectById(Integer id); @Insert("INSERT INTO book_shelf(name,description) VALUES(#{name}, #{description})") void insert(BookShelf record); @Update("UPDATE book_shelf SET name=#{name}, description=#{description} WHERE id=#{id}") int updateByPrimaryKeySelective(BookShelf record); @Delete("DELETE FROM book_shelf WHERE id=#{id}") int deleteByPrimaryKey(Integer id); } ``` ##### Service服务层方法实现 (Java) ```java @Service @Transactional public class BookShelfService { @Autowired private BookShelfMapper mapper; public List<BookShelf> getAll() { return mapper.selectAll(); } public boolean addBookShelf(String name, String desc){ try{ BookShelf bs = new BookShelf(); bs.setName(name); bs.setDescription(desc); mapper.insert(bs); return true; }catch(Exception e){ logger.error(e.getMessage()); return false; } } // Other CRUD operations... } ``` ##### Controller 控制器配置 (Java) ```java @Controller @RequestMapping("/admin/bookshelf") public class AdminBookShelfController { @Autowired private BookShelfService service; @GetMapping("") public ModelAndView list(ModelAndView mav) { mav.setViewName("bookshelf/list"); mav.addObject("shelves",service.getAll()); return mav; } @PostMapping("/add") public String create(@RequestParam(value="name")String name,@RequestParam(value="desc")String desc){ if(service.addBookShelf(name,desc)){ return "redirect:/admin/bookshelf"; }else{ throw new RuntimeException("Failed to save."); } } // More RESTful API endpoints here... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值