相关文章推荐
卖萌的烤面包  ·  9.2 ...·  1 年前    · 
苦闷的茴香  ·  JQuery ...·  1 年前    · 

前端请求并添加在数据库中数据(以添加品牌为例)Spring MVC框架基础

在项目的根包下,创建 pojo.dto.BrandAddNewDTO 类,此类用于封装”增加品牌“时客户端需要提交的请求参数:

@Data
public class BrandAddNewDTO implements Serializable {
    private String name;
    private String pinyin;
    private String logo;
    private String description;
    private String keywords;
    private Integer sort;
    private Integer enable;

在项目的根包下,创建controller.BrandController类,在类上添加@RestController

@RestController
public class BrandController {
    @Autowired
    BrandMapper brandMapper;
    // http://localhost:9080/add-new?name=格力&pinyin=geli&sort=67&description=格力的简介&enable=1&keywords=不知道写什么关键词&logo=还没有上传logo
    @RequestMapping("/add-new")
    public String addNew(BrandAddNewDTO brandAddNewDTO) {
        System.out.println("即将处理【添加品牌】的请求……");
        System.out.println("brandAddNewDTO = " + brandAddNewDTO);
        // 检查品牌名称是否已经被占用
        int count = brandMapper.countByName(brandAddNewDTO.getName());
        if (count > 0) {
            return "增加品牌失败!品牌名称【" + brandAddNewDTO.getName() + "】已经被占用!";
        Brand brand = new Brand();
        BeanUtils.copyProperties(brandAddNewDTO, brand);
        brand.setSales(0);
        brand.setProductCount(0);
        brand.setCommentCount(0);
        brand.setPositiveCommentCount(0);
        brandMapper.insert(brand);
        return "已经完成处理【添加品牌】的请求";
    // http://localhost:9080/delete
    @RequestMapping("/delete")
    public String delete() {
        System.out.println("即将处理【删除品牌】的请求……");
        return "已经完成处理【删除品牌】的请求";

关于控制器的基本使用:

  • 仅当添加了@Controller注解后,此类才算是”控制器类“(才可以接收请求、响应结果)
  • 在方法上使用@RequestMapping可以配置某个路径,后续,客户端可以向此路径发起请求,则此方法将自动执行,所以,此方法可称之为”处理请求的方法“
  • 在默认情况下,处理请求的方法的返回值是String时,返回的结果表示某个视图的名称
  • 在方法上添加@ResponseBody注解,将表示此方法是”响应正文“的,方法的返回结果将直接响应到客户端
  • @ResponseBody注解还可以添加在控制器类上,将表示此控制器类中所有处理请求的方法都是响应正文的
  • @RestController将同时具有@Controller@ResponseBody的效果,这一点,可以从@RestController中看到

关于处理请求的方法:

  • 访问权限:应该是public
  • 返回值类型:使用int
  • 方法名称:自定义
  • 参数列表:按需设计,可以直接将所需的请求参数声明为方法的参数,或者,将多个请求参数封装到自定义类型中,并使用自定义类型作为处理请求的方法的参数,各参数可以按照期望的数据类型进行设计,如果有多个参数,不区分先后顺序

关于接收请求参数:

  • 如果客户端正确的按照名称提交了请求参数,则服务器端可以正常接收到,如果不是字符串类型,会尝试自动的转换数据类型,如果转换失败,将出现错误,且响应400
    • http://localhost:9080/add-new?name=小米&pinyin=xiaomi
  • 如果客户端提交了对应的请求参数名称,却没有提交值,则服务器端默认视为空字符串,如果请求参数是其它类型(例如Integer),框架会放弃转换类型,仍保持为null
    • http://localhost:9080/add-new?name=&pinyin=
  • 如果客户端没有提交对应名称的请求参数,则服务器端接收到的为null
    • http://localhost:9080/add-new
这几天遇到了一个难题,就是如题目所示,需要把选的el-table表格里的数据提交到数据库里,经过了几天的折磨,总算是完成了。现在把从前端到一直提交到数据库里的全过程已经使用的方法写出来,帮助有疑问的小伙伴少走弯路。 1.前端vue代码 UpOne() { let that = this; var a = this.tableDataSelections //这个就是我们选的el-table表格里的数据 conso.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h... 浏览器发一个http请求到控制器(基于http协议,发一个request,接收一个response响应) 控制器:接受客户的请求,转发到其他的组件,然后调用业务逻辑。 模型层:(业务层),访问持久层 持久层:用来对数据进行持久化,真正访问数据库的。 就是 把O(Object)到R(Relations)做一个映射 把一个类映射成数据库的一张... 在 SSM (Spring + Spring MVC + MyBatis) 框架,将一个商品添加到购物车的流程如下: 1. 前端页面提供一个按钮或链接,点击后发送一个 HTTP 请求给后端服务器。请求应包含商品的 ID 以及要添加到购物车的数量。 2. 后端服务器收到请求后,使用 MyBatis 框架数据库查询商品的信息。 3. 接着,可以使用 Spring MVC 的控制器 (Controller) 来处理这个请求。控制器可以接收请求参数,并使用 Spring 的依赖注入 (DI) 功能将商品信息注入到业务逻辑层 (Service) 。 4. 业务逻辑层负责将商品添加到购物车。这可以通过使用 Spring 的事务管理功能来保证数据库操作的原子性。 5. 当业务逻辑处理完成后,控制器可以将处理结果返回给前端页面。 这是一种可行的方法,但并不是唯一的方法。具体的实现方式可能会有所不同,取决于你的应用程序的具体需求和设计。 ### 回答2: 在SSM框架,我们可以使用以下步骤将一个商品添加到购物车: 1. 创建一个购物车实体类,包含商品的信息,如商品ID、商品名称、商品数量等。 ```java public class ShoppingCartItem { private int itemId; private String itemName; private int quantity; //getters and setters 2. 在购物车控制器,创建一个空的购物车列表。 ```java List<ShoppingCartItem> shoppingCart = new ArrayList<>(); 3. 创建一个方法,用于处理添加商品到购物车的请求。这个方法接收商品ID和数量作为参数。 ```java @RequestMapping(value = "/addToCart", method = RequestMethod.POST) public String addToCart(@RequestParam("itemId") int itemId, @RequestParam("quantity") int quantity) { // 创建一个购物车项 ShoppingCartItem item = new ShoppingCartItem(); item.setItemId(itemId); item.setQuantity(quantity); // 添加购物车项到购物车列表 shoppingCart.add(item); // 返回购物车页面 return "shoppingCart"; 4. 在商品页面或其他需要添加到购物车的地方,通过表单或AJAX将商品ID和数量发送到`/addToCart`的URL。 ```html <form action="/addToCart" method="post"> <input type="hidden" name="itemId" value="1"> <label for="quantity">数量:</label> <input type="number" name="quantity" min="1" value="1"> <input type="submit" value="添加到购物车"> </form> 5. 在购物车页面,遍历购物车列表,显示购物车的商品信息。 ```html <table> <th>商品ID</th> <th>商品名称</th> <th>数量</th> <c:forEach var="item" items="${shoppingCart}"> <td>${item.itemId}</td> <td>${item.itemName}</td> <td>${item.quantity}</td> </c:forEach> </table> ### 回答3: 在SSM框架,将一个商品添加到购物车需要以下步骤: 1. 创建购物车实体类:首先,需要创建一个购物车实体类,可以包含商品的信息,如id、名称、价格等,以及购物车的其他信息。 2. 创建商品实体类:同样地,还需要创建商品实体类,可以包含商品的各种属性,比如id、名称、价格等。 3. 编写Controller层:在Controller层,编写一个方法,用于处理添加商品到购物车的请求。该方法可以接收商品id作为参数,并根据id查询商品的详细信息。 4. 编写Service层:在Service层,编写一个方法,该方法根据商品id查询商品信息,并将商品信息保存到购物车实体类。 5. 编写Dao层:在Dao层,编写一个方法,该方法通过商品id查询商品的详细信息,并返回给Service层。 6. 编写前端页面:在前端页面上,通过用户的操作触发添加商品到购物车的请求,并将商品id传递给Controller层的方法。 7. 进行数据的封装与展示:在前端页面上,通过ajax等方式将商品信息发送给后台,并将商品信息保存到购物车实体类。 8. 返回结果:最后,返回一个成功或失败的结果给前端页面,用于提示用户商品是否成功添加到购物车。 以上就是在SSM框架将一个商品添加到购物车的基本步骤。实际开发,还可以根据需求进行适当的扩展和完善。