RestEasy传值方式
一、@pathparam
@PathParam 是一个参数注解,可以将一个 URL 上的参数映射到方法的参数上,它可以映射到方法参数的类型有基本类型、字符串、或者任何有一个字符串作为构造方法参数的 Java 对象、或者一个有字符串作为参数的静态方法 valueOf 的 Java 对象(一般是从Get的url中获取参数值)。
@GET
@Path("delProByPNumber/{param}")
@Produces("application/json; charset=utf-8")
public Response delPro(<strong>@PathParam("param") String pNumber</strong>){ session.delete("production.delete", pNumber); session.commit(); List list=queryAllPro(); return Response.status(201).entity(list).build();
}
访问路径:http://localhost:8888/Invoice/optPro/delProByPNumber/7
@pathparem中,URL中只出现参数的值,不出现键值对,比如: “/users/2011/06/30”
@GET
@Path("{year}/{month}/{day}") public Response getUserHistory( @PathParam("year") int year, @PathParam("month") int month, @PathParam("day") int day) { String date = year + "/" + month + "/" + day; return Response.status(200) .entity("getUserHistory is called, year/month/day : " + date) .build(); }
另外:{var}代表只能有一个路径名,如:a;而{var:.*}代表可以是任意多个路径名,如:a/b/c
/*** {var:.*}代表可以是任意多个路径名,如:a/b/c*/
@Path("/pathRegular1/{var:.*}/{msg}")
@GET
public String pathRegular1(@PathParam("msg") String m){return m;
}/*** {var}代表只能有一个路径名,如:a
*/
@Path("/pathRegular1/{var}/{msg}")
@GET
public String pathRegular2(@PathParam("msg") String m){return m;
}
二、@queryParam
@queryParam从/XXX/路径/?num=5中获取参数
@GET
@Path("addAcc/parameters")
@Produces("application/json; charset=utf-8")
public Response addCus( @QueryParam("accname") String accname, @QueryParam("balance") long balance, @QueryParam("department") String department, ) { Account account=new Account(); account.setAccname(accname); account.setBalance(balance); return Response.status(201).entity(queryOne(accname)).build();
}
访问路径:http://localhost:8888/Invoice/optAcc/addAcc/parameters?accname=rr&balance=99999&department=heda,parameters后面为传入参数
Path("/users")
public class UserService { @GET @Path("/query") public Response getUsers( @QueryParam("from") int from, @QueryParam("to") int to, @QueryParam("orderBy") List<String> orderBy) { return Response.status(200).entity("getUsers is called, from : " + from + ", to : " + to + ", orderBy" + orderBy.toString()).build();
}
URL输入为:users/query?from=100&to=200&orderBy=age&orderBy=name 此时,输出为: getUsers is called, from : 100, to : 200, orderBy[age, name]。
注意:跟@pathparam不同,@queryparam中,指定的是URL中的参数是以键值对的形式出现的,而在程序中 @QueryParam("from") int from则读出URL中from的值
三、@FormParam
将表单中的字段映射到方法调用上,对于此类方式一般提交方式为Post。
例如,对于下面的表单:
<form method="POST" action="/resources/service">
First name:
<input type="text" name="firstname">
<br>
Last name:
<input type="text" name="lastname">
</form>
通过 post 方法提交,处理该请求的方法为:
Path("/")
public class NameRegistry {@Path("/resources/service")@POSTpublic void addName(@FormParam("firstname") String first, @FormParam("lastname") String last) {...}
}
访问路径:http://localhost:8888/resources/services/hello/getName
也可以添加application/x-www-form-urlencoded来反序列化 URL 中的多参数:
@Path("/")
public class NameRegistry {@Path("/resources/service")@POST@Consumes("application/x-www-form-urlencoded")public void addName(@FormParam("firstname") String first, MultivaluedMap<String, String> form) {...}
}
参见:http://blog.csdn.net/programmeryu/article/details/50536024
http://ju.outofmemory.cn/entry/144017
http://www.cnphp6.com/archives/29400
RestEasy传值方式相关推荐
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
第二个视图控制器如何获取第一个视图控制器的部分信息 例如 :第二个界面中的lable显示第一个界面textField中的文本 这就需要用到属性传值.block传值 那么第一个视图控制器如何获的第二个视 ...
- 4)PHP命名规则,传值方式
(1)命名规则: 包括变量名,类名,接口名函数名等等 ①基本规则: 只能使用小写字母,下划线或者数字 数字不能开头 不能跟环境和系统关键字重复(比如,if,else,function) ② 驼峰式 ...
- 用页传值方式解决模态窗口的Response.WriteFile文件下载
因为项目需要,使用了模态窗口,故在BasePage中的override void OnInit(EventArgs e)中加入如下内容. Response.Clear(); ...
- Asp.net页面间传值方式汇总
在优化.NET中,用到了页面传值的功能,汇总出来跟大家分享一下. 我找到了七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Applicati ...
- MVCWebForm对照学习:传值方式
刚从webform开发转到mvc,如果说像路由这样稍微复杂一点的知识点还可以暂时先放一放(前提是默认的路由规则基本满足大部分需求),那有个问题在快速开发中,我想是必须要当即解决的,那就是webform ...
- 七种Vue3传值方式
七种Vue3传值方式 props emit v-model refs provide/inject eventBus vuex/pinia(状态管理工具) Props方式 Props方式是Vue中最常 ...
- 数据传值方式、分支结构、循环结构
运算符的优先级 要心如明镜:运算符有优先级(先后顺序)问题. 括号最优先,等号(赋值)最落后. 先乘除后加减 想不清楚或用不明白的,使用括号来解决 括号只有小括号,可以一层层嵌套. 数据的传值方式 在 ...
- 转 JavaScript传值及.Net传值方式总结
一,JavaScript传值,主要用到opener.document-- 例如:Trans_aa.htm,Trans_bb.htm <html> <head> <scri ...
- C++ 函数参数3种传值方式(以交换两个数为例)
简介 在C++中,函数参数的传值方式有传值调用.指针调用和引用调用.接下来,通过一个实例来演示三者区别. 代码 #include <iostream>using namespace std ...
- jsp页面页面post传值_几种JSP页面传值方式
2010-01-25 几种JSP页面传值方式: 文章分类:Web前端 几种JSP页面传值方式: 1. 隐藏域传值: <form method="post" action ...
最新文章
- Quartz2.2.1开发问题
- oracle to_char函数的使用
- 深入理解JMM(Java内存模型) --(六)final
- php foreach 循环 判断index 小于多少_PHP设计模式之迭代器模式 - 硬核项目经理
- vue组件的基本使用:入门示例
- Java 网络通信必备之socket通信基本原理介绍
- 程序员:开汽车,难道我要知道汽车的原理才能把车开好吗?
- IE下打开ClearType后透明字体问题解决
- java文件名中不能包含的字符,使用Java 7编写包含非英语字符的文件名时,zip条目不正确...
- 无法支持python程序的编辑运行和调试_解决pycharm的Python console不能调试当前程序的问题...
- python常用的几种字符串替换函数strip、replace、sub
- Nginx系列(6):Web服务器分析(理论)
- easyui combobox筛选(拼音)
- Win10 LSTC与Ubuntu18.04LTS双系统安装详细流程
- 层次分析法(附实例)
- MPai数据科学平台
- 《游戏大师Chris Crawford谈互动叙事》一第 6 章 数学之苦劳
- heur.riskfm.bbx病毒解决方案--www.baoluowanxiang.com
- logback 配置总结
- 【Python自动化测试14】Python自动化测试基础与进阶练习题