当前位置: 首页 > 知识库问答 >
问题:

@formParam不能使用GET方法-Resteasy

谭吉星
2023-03-14
@Path("/form")
public class FromParamService {

    @POST
    @Path("/add")
    public Response addUser(
        @FormParam("name") String name,
        @FormParam("age") int age) {

        return Response.status(200)
            .entity("addUser is called, name : " + name + ", age : " + age)
            .build();

    }


    @GET
    @Path("/adduser")
    public Response addUser1(
        @FormParam("name") String name,
        @FormParam("age") int age) {

        return Response.status(200)
            .entity("addUser is called, name : " + name + ", age : " + age)
            .build();

    }
}

GET的输出为

调用addUser,名称:null,年龄:0

带有POST的输出为

<html><body>       

<form action="rest/form/adduser" method="get">
    <p>
        Name : <input type="text" name="name" />
    </p>
    <p>
        Age : <input type="text" name="age" />
    </p>
    <input type="submit" value="Add User" />
</form></body></html>
<html><body>


<form action="rest/form/add" method="post">
    <p>
        Name : <input type="text" name="name" />
    </p>
    <p>
        Age : <input type="text" name="age" />
    </p>
    <input type="submit" value="Add User" />
</form></body></html>

共有1个答案

汝彭薄
2023-03-14

表单对于GET请求的默认行为是将键/值放入查询字符串中。如果您在URL栏中查看,您可能会看到如下内容

http://localhost:8080/app/form/addUser?name=something&age=100

与POST请求相反,这个oartname=something&age=100实际上将位于请求的正文中,而不是URL中。这就是@formparam的工作方式,就像它用于应用程序/x-www-form-urlencoded数据类型一样,作为主体。GET请求应该没有正文,所以数据是在URL中发送的。

要使get请求正常工作,我们需要一个不同的注释来处理查询字符串。这个注释是@queryparam。因此,只需将@formParam(“name”)替换为@queryParam(“name”),并且对于年龄相同

 类似资料:
  • 我得到了405请求方法'GET'在app engine的文件上传过程中不受支持,但在我的本地沙箱中相同的代码运行正常 看起来像bbloservice回调请求应该是POST类型后POST/_ah/上载/...但是当我用Firebug看的时候,它是一个带有以下头的GET请求,我确实在@Controller类中定义了请求处理程序,该类具有方法类型请求方法。POST 标题 响应Headersview源允许

  • 查询单条数据使用Get方法,在调用Get方法时需要传入一个对应结构体的指针,同时结构体中的非空field自动成为查询的条件和前面的方法条件组合在一起查询。 如: 1) 根据Id来获得单条数据: user := new(User) has, err := engine.Id(id).Get(user) // 复合主键的获取方法 // has, errr := engine.Id(xorm.PK

  • 我有一个看起来像这样的请求: http://localhost:8080/car/BMW;颜色=红色 返回汽车模型及其颜色作为 json 数据。如果我在没有指定颜色的情况下执行请求,它将默认为绿色。 Java代码: 当我将url复制/粘贴到浏览器时,它会按预期返回json,但当我尝试放心地获取它时,我收到404未找到错误。我尝试发送带有参数(“颜色”,颜色)的请求,但它只是忽略参数并返回默认jso

  • 问题内容: 所以我有这种方法: 我想返回集合,而不是使用void方法: 意图做这样的事情(在哪里MyItemClass extends MyItemBaseClass): 但我在上出现语法错误: 令牌“ super”的语法错误,预期 是什么赋予了?我可以解决这个问题吗? 问题答案: 这是一个解释为什么不允许这样做的链接: http://www.angelikalanger.com/Generics

  • 问题内容: 当我在Java中使用ArrayList时,有些事情我不理解。这是我的初始化代码: 有时我需要按其索引删除对象: 但有时我想按其内容删除对象: 此代码非常含糊。为了阐明我要在代码中执行的操作,我指定如下类型: 如果我不使用AC,则知道调用哪些方法的唯一方法是将鼠标指针放在该方法上以查看:java.util.ArrayList.remove布尔值(对象对象) Java但是它有何不同?有方法