资讯专栏INFORMATION COLUMN

3.5、矩阵变量

leiyi / 3304人阅读

摘要:在它被成为矩阵变量矩阵变量可以出现在任何路径片段中,每一个矩阵变量都用分号隔开。如果你希望一个包含矩阵变量,那么请求映射模式必须用模板来表示这些矩阵变量。这样的话,不管矩阵变量顺序如何,都能够保证请求可以正确的匹配。

    根据 URI 规范 RFC 3986 中 URL 的定义,路径片段中可以可以包含键值对。规范中没对对应的术语。一般 “URL 路径参数” 可以被应用,尽管更加独特的 “矩阵 URI” 也经常被使用并且相当有名。在 Spring MVC 它被成为矩阵变量

    矩阵变量可以出现在任何路径片段中,每一个矩阵变量都用分号(;)隔开。比如 “/cars;color=red;year=2012”。多个值可以用逗号隔开,比如 “color=red,green,blue”,或者分开写 “color=red;color=green;color=blue”。

    如果你希望一个 URL 包含矩阵变量,那么请求映射模式必须用 URI 模板来表示这些矩阵变量。这样的话,不管矩阵变量顺序如何,都能够保证请求可以正确的匹配。

    细节见下面的例程(源代码在这里):

1)首先在上下文配置文件中启用矩阵变量
2)编写矩阵变量控制器
package com.techmap.examples.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.MatrixVariable;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/matrix")
public class MatrixController
{
    
    /**
     * 使用矩阵变量
     */
    @GetMapping("/owners/{ownerId}/pets/{petId}")
    public String findPet(
            @PathVariable String ownerId,
            @PathVariable String petId,
            @MatrixVariable(name = "q", pathVar = "ownerId") int q1,
            @MatrixVariable(name = "q", pathVar = "petId") int q2) 
    {
        System.out.println("--> ownerId : " + ownerId);
        System.out.println("--> petId : " + petId);
        System.out.println("--> q1 : " + q1);
        System.out.println("--> q2 : " + q2);
        
        return "/examples/targets/test1";
    }
    
    /**
     * 矩阵变量可以设置默认值
     */
    @GetMapping("/pets/{petId}")
    public String findPet(
            @MatrixVariable(required = false, defaultValue = "1") int q) 
    {
        System.out.println("--> Default value of q : " + q);
        
        return "/examples/targets/test2";
    }
}
3)编写使用上述控制器的 URL

Matrix Variables

Matrix
Default Value
4)测试

    测试比较简单,这里就不放出结果了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65141.html

相关文章

  • 亚马逊发布新版MXNet:支持英伟达Volta和稀疏张量

    Apache MXNet v0.12来了。今天凌晨,亚马逊宣布了MXNet新版本,在这个版本中,MXNet添加了两个重要新特性:支持英伟达Volta GPU,大幅减少用户训练和推理神经网络模型的时间。在存储和计算效率方面支持稀疏张量(Sparse Tensor),让用户通过稀疏矩阵训练模型。下面,量子位将分别详述这两个新特性。Tesla V100 加速卡内含 Volta GV100 GPU支持英伟...

    cod7ce 评论0 收藏0
  • 好球还是坏球(棒球中术语),用tensorflow.js预测一下?

    摘要:感谢像这样的框架,使得这些数据集可以应用于机器学习领域。蓝点被标记为坏球,橙点被标记为好球标注来自大联盟裁判员使用构建模型将机器学习带入和领域。使用库将预测结果呈现为热图。好球区域位于本垒板上方至英尺之间。 在这篇文章中,我们将使用TensorFlow.js,D3.js和网络的力量来可视化训练模型的过程,以预测棒球数据中的坏球(蓝色区域)和好球(橙色区域)。在整个训练过程中,我们将一步...

    chinafgj 评论0 收藏0

发表评论

0条评论

leiyi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<