转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391

原文地址 http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/index.html

只是分享,如有侵权,麻烦联系我删除,谢谢。

@PathParam 的声明允许你在URI路径中去映射你的方法将使用的参数。

(很简单,当你发出get请求 /book/152-963参数152-963就在isbn中存储着,然后交给变量id,这样你的方法就算是成功的接收了该参数)

这将允许你在uri中内嵌一个变量标识符。在上边的例子中,参数isbn被用来传递book的信息。你所嵌入的数据类型可以是任何元数据类型,例如String,具有String参数的构造函

数的一个类对象,或者a static valueOf method that takes a String as a parameter。例如,假设ISBN是一个对象,我们可以

或者是一个public方法String构造,包含一个valueOf 方法

(运行中应该能够自动调用类的valueOf方法进行转换,对Java不是很熟悉,我想大概应该是这样)

5.1. @PathParam深入 以及正则表达式

下边是一些更复杂的应用,这些在前边的章节并没有讨论

你可以指定一个或者多个参数用以内嵌到你的uri中,下边是一些例子

1.@Path("/aaa{param}bbb")

2.@Path("/{name}-{zip}")

3.@Path("/foo{name}-{zip}bar")

那么,路径 "/aaa111bbb" 将会匹配#1. "/bill-02115"将会匹配 #2. 路径"foobill-02115bar" 将会匹配 #3.

之前,我们已经讨论过如何在@Path中使用正则表达式

在如下的请求中,我们可以了解到“param”以及“many”值是多少

5.2@PathParam 和 PathSegment

Thespecification has a very simple abstraction for examining a fragment of the URIpath being invoked on javax.ws.rs.core.PathSegment:

你可以使用resteasy注入一个PathSegment而不是用一个值

当你使用matrix parameters传递诸多参数时,浙江爱那个非常有用。你可以将任意个name和value的键值对潜入到uri path segment中。PathSegment对象将会负责去获取这些参数。

你也可以看一下MatrixParam(后边会讲到)

一个matrix parameter的例子是

GEThttp://host.com/library/book;name=EJB 3.0;author=Bill Burke

Thebasic idea of matrix parameters is that it represents resources that areaddressable by their attributes as well as their raw id.

(好吧,5.2我表示不怎么理解,自己还没有试过这个部分。)

RestEasy+用户指南----第5章.@PathParam的更多相关文章

  1. RestEasy 用户指南----第4章.使用@Path @GET @POST 等

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  2. RestEasy 用户指南----第7章 @HeaderParam

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  3. RestEasy用户指南---第6章.@QueryParam

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  4. RestEasy 用户指南---第11章 @FormParam

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  5. Gradle2.0用户指南翻译——第一章. 介绍

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

  6. ReatEasy+用户指南----第9章@MatrixParam

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  7. Gradle 1.12用户指南翻译——第四十一章. 项目报告插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  8. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

  9. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

随机推荐

  1. E20170926-mk

    validation   n. 确认; proposal n. 建议; 提议; 求婚; 〈美〉投标; teaser   n. 戏弄者,喜欢戏弄别人的人; 棘手的问题; batch   n. 一批; 一 ...

  2. css选择器---继承,优先级,层叠

    CSS三大特性—— 继承. 优先级和层叠. 继承:即子类元素继承父类的样式; 优先级:是指不同类别样式的权重比较; 层叠:是说当数量相同时,通过层叠(后者覆盖前者)的样式. css选择符分类 首先来看 ...

  3. BZOJ 4310 二分+SA+RMQ

    思路: 首先求出后缀数组和height数组,这样能得到本质不同的子串数目 这里利用:本质不同的子串=∑(Len−SA[i]−height[i])=∑(Len−SA[i]−height[i])利用SA[ ...

  4. 【洛谷4770/UOJ395】[NOI2018]你的名字(后缀数组_线段树合并)

    题目: 洛谷4770 UOJ395 分析: 一个很好的SAM应用题-- 一句话题意:给定一个字符串\(S\).每次询问给定字符串\(T\)和两个整数\(l\).\(r\),求\(T\)有多少个本质不同 ...

  5. 题解报告:hdu 2066 一个人的旅行

    Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...

  6. Android Framework 学习

    1. 之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework面存一些资料待有空查看. 2.Android系统的层次如下: 3.项目目录简单分析如下: 4.telphony ...

  7. JSP执行原理图

  8. Unity Sprite Packer 问题集合

    介绍 今天突发奇想用了下sprite packer 这个功能,基本用法网上教程一堆一堆的,这里就不赘述了. 在使用sprite packer过程中遇到一些问题,然后各种百度不到答案,最后和谐上网找到了 ...

  9. C#用Microsoft.Office.Interop.Word进行Word转PDF的问题

    之前用Aspose.Word进行Word转PDF发现'\'这个字符会被转换成'¥'这样的错误,没办法只能换个方法了.下面是Microsoft.Office.Interop.Word转PDF的方法: p ...

  10. Python学习(一)-在VS上搭建开发环境

    1.到官网下载最新Python 注意:虽然目前大部分应用是Python2写的,但Python3必定会成为以后的主流 不管选择学习哪个,了解pyhton2和pyhton3的差异是必须的 2.安装Pyth ...