gpt4 book ai didi

java - 新手 : In Jersey framework, 在我的案例中如何获取 HTML 表单对象数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:35 25 4
gpt4 key购买 nike

当客户端提交一个HTML表单时,它会向服务器发送一个表单对象,例如:

params={username: USER_INPUT_USERNAME,
passworkd: USER_INPUT_PASSWORD}

然后,客户端 ajax 将 params 对象发送到我的 Jersey 服务器。

在服务器端,如何获取和解析这个 HTML 表单对象数据params:

@GET
@Produces({MediaType.APPLICATION_JSON})
public FormResult getFormResult(@QueryParam("params") Object params) {
//How can I define the type of the "params" I received?
//Do I need to create a Java Bean which represent the HTML form,
//and use the bean as the type of paprams? or any other way?
}

(在上面的代码中,返回类型FormResult是一个POJO bean,它描述了响应给客户端的结果)

当我收到 params HTML 表单对象数据时,如何定义 paramstype ?(上面我用输入“Object”,这是错误的)。

我是否必须定义一个 POJO bean 来表示 HTML 表单并使用该 bean 来描述 params 的类型?还是 Jersey 的任何其他方式?

(如果为 HTML 表单创建 POJO bean,如果 HTML 表单 上有复选框params 将是一个动态的object,只有checked字段会被加到params对象中,这也是一个问题)

有人可以帮忙吗?

最佳答案

@QueryParam 映射一个单独的 queryString 参数,因此对于 GET 请求,您需要将所有参数枚举为方法参数:

@GET
getFormResult(@QueryParam("name") String name, @QueryParam("age") int age, ... )

如果您提到的 params 实际上是一个查询字符串参数 (http://your.rest.service?params=somethingHere),您可以将其映射到一些具有构造函数的类采用 String 或静态 valueOf(String) 方法,您可以在其中进行实际解析。

@GET
getFormResult(@QueryParam("params") FormData formData);

FormData 类可以如下所示:

public class FormData {
public FormData(String s) {
// populate fields based on the content of s
}

// getters / setters / whatever ...
}

编辑:对于复选框,它并不像看起来那样动态:它们具有相同的名称,因此根据用户选中的内容,您将有一个、多个或没有与该名称相关联的值。因此,@QueryParam("chk") String[] checkedValues 应该足以处理这里的“动态”方面(实际上,“多值”这个词更好)。

关于java - 新手 : In Jersey framework, 在我的案例中如何获取 HTML 表单对象数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com