Jsf 检索所有GET参数的列表?

Jsf 检索所有GET参数的列表?,jsf,jakarta-ee,dependency-injection,get,cdi,Jsf,Jakarta Ee,Dependency Injection,Get,Cdi,有没有一种简单的方法可以使用CDI注入快速获取URL中所有get参数的列表 我要找的是: @Inject Map<String, String> allGetParams; @Inject 映射所有GetParams; 正如前面所说,您没有现成的,但您可以在CDI 1.1中这样生成它+ public class MyProducer { @Produces @RequestScoped Map<String,String[]> produceP

有没有一种简单的方法可以使用CDI注入快速获取URL中所有get参数的列表

我要找的是:

@Inject
Map<String, String> allGetParams;
@Inject
映射所有GetParams;

正如前面所说,您没有现成的,但您可以在CDI 1.1中这样生成它+

public class MyProducer {

    @Produces
    @RequestScoped
    Map<String,String[]> produceParamMap(HttpServletRequest request) {
        return request.getParameterMap();
    }

}
因此,您不需要调用生产者方法,而是CDI容器使用它来实例化bean

当您使用参数声明生产者方法时,容器将查找与这些参数匹配的bean以调用该方法。在启动时检查这些bean的存在性,并且它们不存在。抛出异常(就像任何未满足bean的注入点一样)


这里,在这两种情况下,HttpServletRequest类型的bean都是由CDI实现(CDI 1.1+)或Deltaspike框架(CDI 1.0)提供的。

如前所述,您没有现成的,但可以像CDI 1.1中那样生成它+

public class MyProducer {

    @Produces
    @RequestScoped
    Map<String,String[]> produceParamMap(HttpServletRequest request) {
        return request.getParameterMap();
    }

}
因此,您不需要调用生产者方法,而是CDI容器使用它来实例化bean

当您使用参数声明生产者方法时,容器将查找与这些参数匹配的bean以调用该方法。在启动时检查这些bean的存在性,并且它们不存在。抛出异常(就像任何未满足bean的注入点一样)


这里,在这两种情况下,HttpServletRequest类型的bean都是由CDI实现(CDI 1.1+)或Deltaspike框架(CDI 1.0)提供的。

如前所述,您没有现成的,但可以像CDI 1.1中那样生成它+

public class MyProducer {

    @Produces
    @RequestScoped
    Map<String,String[]> produceParamMap(HttpServletRequest request) {
        return request.getParameterMap();
    }

}
因此,您不需要调用生产者方法,而是CDI容器使用它来实例化bean

当您使用参数声明生产者方法时,容器将查找与这些参数匹配的bean以调用该方法。在启动时检查这些bean的存在性,并且它们不存在。抛出异常(就像任何未满足bean的注入点一样)


这里,在这两种情况下,HttpServletRequest类型的bean都是由CDI实现(CDI 1.1+)或Deltaspike框架(CDI 1.0)提供的。

如前所述,您没有现成的,但可以像CDI 1.1中那样生成它+

public class MyProducer {

    @Produces
    @RequestScoped
    Map<String,String[]> produceParamMap(HttpServletRequest request) {
        return request.getParameterMap();
    }

}
因此,您不需要调用生产者方法,而是CDI容器使用它来实例化bean

当您使用参数声明生产者方法时,容器将查找与这些参数匹配的bean以调用该方法。在启动时检查这些bean的存在性,并且它们不存在。抛出异常(就像任何未满足bean的注入点一样)



在这两种情况下,HttpServletRequest类型的bean都是由CDI实现(CDI 1.1+)或Deltaspike框架(CDI 1.0)为您提供的。

我拥有的是一组使用许多GET参数来显示正确数据的Facelet。现在,在每一页上我都可以选择语言,这意味着每一条信息都是用多种语言提供的。所以我想保留所有参数,但更改语言参数。因此,我需要所有GET参数的列表,以便在循环中遍历它们并更改语言param。我不会说这是一个罕见的情况,因为每一个具有多种语言的CMS都应该有一个基于此的功能。最好的方法是什么?不,没有直接提供这个的bean。您需要创建自己的producer方法。我拥有的是一组Facelet,它们使用许多GET参数来显示正确的数据。现在,在每一页上我都可以选择语言,这意味着每一条信息都是用多种语言提供的。所以我想保留所有参数,但更改语言参数。因此,我需要所有GET参数的列表,以便在循环中遍历它们并更改语言param。我不会说这是一个罕见的情况,因为每一个具有多种语言的CMS都应该有一个基于此的功能。最好的方法是什么?不,没有直接提供这个的bean。您需要创建自己的producer方法。我拥有的是一组Facelet,它们使用许多GET参数来显示正确的数据。现在,在每一页上我都可以选择语言,这意味着每一条信息都是用多种语言提供的。所以我想保留所有参数,但更改语言参数。因此,我需要所有GET参数的列表,以便在循环中遍历它们并更改语言param。我不会说这是一个罕见的情况,因为每一个具有多种语言的CMS都应该有一个基于此的功能。最好的方法是什么?不,没有直接提供这个的bean。您需要创建自己的producer方法。我拥有的是一组Facelet,它们使用许多GET参数来显示正确的数据。现在,在每一页上我都可以选择语言,这意味着每一条信息都是用多种语言提供的。所以我想保留所有参数,但更改语言参数。因此,我需要所有GET参数的列表,以便在循环中遍历它们并更改语言param。我不会说这是一个罕见的情况,因为每一个具有多种语言的CMS都应该有一个基于此的功能。最好的方法是什么?不,没有直接提供这个的bean。你需要创建自己的生产者方法。哇!完整的例子马上!谢谢!问题:我怎么称呼它?我从哪里可以得到
HttpServletRequest
?@苏格拉底我补充了关于生产者及其用途的说明。我认为您应该花点时间阅读CDI规范:或者如果不想这样做,焊接文档:就可以了!无论如何,非常感谢!你已经帮了我很多!谢谢你的链接!哇!完整的例子马上!谢谢!问题:我怎么称呼它?我从哪里可以得到
HttpServletRequest
?@Socrates我补充了关于生产者及其用途的说明