假设我有很多团队,比如:“团队A,团队B…团队Z”,每个团队至少有5个组件。现在我想创建一个通用控制器,它可以响应任何类型的请求/team/number
,这样我就可以获得关于团队成员的信息。
例如,我的控制器必须能够映射此请求:
@RequestMapping(value = "/Team A/1", method = RequestMethod.GET)
团队课程可以是:
@Entity
@Table(name = "team")
public class Team {
public Team() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private List<Player> players;
}
而且
Player :
@Entity
@Table(name = "player")
public class Player {
public Player() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private int number;
}
显然它既可以执行GET
也可以执行POST
,重点是我不想为每个团队和每个数字指定一个控制器,我只想要一个可以响应/String/int
的控制器。
我还需要指定它可以接受的字符串和值的范围(例如,最大值为5)。
在这种情况下,@PathVariable-spring注释将对您有所帮助。
例如:
@RequestMapping(value = "{team}/{component}", method = RequestMethod.GET)
public Team getTeam(@PathVariable String team, @PathVariable int component) {
//Use team and component here
}
如果其中一个变量是意外值,您只需在控制器方法中添加一些逻辑即可引发一些异常。
尽管这取决于您试图实现的目标,但这可能是一个糟糕的设计,因为此控制器方法将捕获所有匹配String/int
的GET请求。您可能希望尝试以下操作,以使请求映射更加具体:
@RequestMapping(value = "team/{teamLetter}/{component}", method = RequestMethod.GET)
public Team getTeam(@PathVariable char teamLetter, @PathVariable int component) {
//Use team and component here
}
问题内容: 如何创建可从所有控制器访问的某种utils捆绑包? 我的主模块中有以下路由代码: 我想是可以通用的功能,和。 我应该如何在AngularJS中做到这一点? 问题答案: 用角度定义通用代码的方法是通过服务。 您将像这样定义一个新服务: 在您的控制器中,您将注入此服务。 只需将CommonCode用作控制器函数的参数即可。Angular会为您注入它(请阅读Dependency Inject
主要内容:Servlet 单一映射,Servlet 多重映射客户端通过 URL 地址来访问 Web 服务器中的资源,Servlet 程序若想被外界访问,就必须被映射到一个 URL 地址上。很多时候,该 URL 地址和 Servlet 程序的物理路径(在硬盘上的存储位置)并不一致,因此它被称为虚拟路径。Servlet 与虚拟路径的对应关系就叫做 Servlet 虚拟路径映射。 Servlet 虚拟路径映射可以被分为 2 类: 单一映射 多重映射 下面介绍如何
本文向大家介绍JavaScript创建映射,包括了JavaScript创建映射的使用技巧和注意事项,需要的朋友参考一下 示例 映射是键到值的基本映射。映射与对象的不同之处在于,它们的键可以是任何东西(原始值和对象),而不仅仅是字符串和符号。Map上的迭代也总是按照将项目插入Map中的顺序进行,而在对象中的键上进行迭代时,顺序是不确定的。 要创建映射,请使用Map构造函数: 它具有一个可选参数,该参
我想更新配置Azure存储挂载与Azure文件共享(路径映射)的Azure WebApp容器通过Azure运营模式管道。为此,我目前正在使用Azure PowerShell任务(代码如下)。但是,PowerShell脚本正在配置高级选项,并公开存储帐户访问密钥。有没有一种方法来配置'基本'之一。 PowerShell“New AzWebAppAzureStoragePath”创建“advance”
我试图使用KeyCloak的管理API,以便向用户角色映射添加客户端级别的角色。为此,我使用管理endpoint: 不确定这里的问题是什么,因为该角色存在于系统中。这里会出什么问题?
问题内容: 我已经为我的Jersey应用程序配置了。不幸的是,这给我的应用中的常规上传服务带来了一些麻烦。 如果有人上传,扩展名将被删除。 有没有办法告诉Jersey跳过对此资源的过滤? 编辑 :peeskillet的答案后,我的假设得到确认。我已经提出了改进请求:https : //java.net/jira/browse/JERSEY-2780 问题答案: 首先,这绝不是错误。这是预期的行为。