- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是我的方法:
@PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')")
@RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
public @ResponseBody
void createRequisition(@RequestBody CreateRequisitionRO[] request,
@RequestHeader("validateOnly") boolean validateOnly) {
logger.debug("Starting createRequisition()...");
for (int i = 0; i < request.length; i++) {
CreateRequisitionRO requisitionRequest = request[i];
// FIXME this has to be removed/moved
requisitionRequest.setFundManager(requisitionRequest.getUserId());
// FIXME might have to search using param level as well
SystemDefault sysDefault = dbFuncs.references.systemDefault
.findByCompanyAndDivisionAndPortfolio(
userContext.getCompany(),
userContext.getDivision(),
requisitionRequest.getPortfolio());
requisitionRequest.setCustodianN(sysDefault.getCustodianN());
gateKeeper.route(requisitionRequest);
}
}
其中我可以获得以下详细信息
1. @RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
2. void createRequisition(@RequestBody CreateRequisitionRO[] request,
@RequestHeader("validateOnly") boolean validateOnly)
(in thesecond one i am able to get the argument type like boolean etc)
我得到的上述详细信息如下:
Class cls;
cls = Class.forName(obj.getName());
Method[] method = cls.getDeclaredMethods();
for (Method method2 : method) {
RequestMapping requestMappingAnnotation = method2.getAnnotation(RequestMapping.class); // gets the method which is maped with RequestMapping Annotation
requestMappingValues = requestMappingAnnotation.value(); // to get the url value
RequestMethod[] methods = requestMappingAnnotation.method(); // to get the request method type
requestingMethod = methods[0].name();
}
以同样的方式,当我尝试获取如下所示的 @RequestHeader
时,我得到 java.lang.NullPointerException
下面是我使用的代码片段
RequestHeader requestHeader = method2.getAnnotation(RequestHeader.class);
System.out.println("requestHeader : "+requestHeader.value());
我想要获取的是@RequestHeader("validateOnly")
此注释包含的值。
编辑:
感谢@NilsH,他始终支持所有提出的澄清,即使这需要花费时间:
这就是我解决它的方法但是如果程序处于 Debug模式,该信息将可用
我使用 spring 来做到这一点:
LocalVariableTableParameterNameDiscoverer lcl = new LocalVariableTableParameterNameDiscoverer();
parametersDefinedForMethod = lcl.getParameterNames(method2);
for (String params : parametersDefinedForMethod) {
System.out.println("Params : "+params);
}
请帮我完成这件事。
谢谢
最佳答案
@RequestHeader
在本例中是参数级别注释。尝试使用Method.getParameterAnnotations()
得到它。
编辑
一个例子:
public class MyClass {
public void someMethodWithParamAnnotations(String s, @MyAnnotation String s2) {
}
}
然后到其他地方
Method m = MyClass.class.getMethod("someMethodWithParamAnnotations", String.class, String.class);
Annotation[][] paramAnnotations = m.getParameterAnnotations();
Annotation[] firstParamAnnotation = paramAnnotations[0];
// Above is empty array, since first parameter has no annotation
Annotation[] secondParamAnnotation = paramAnnotations[1];
// Above contains an array with the `@MyAnnotation` annotation
关于Java - 反射 - 如何使用反射获取@RequestHeader值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233470/
我们可以使用@RequestHeader 强制 header 参数而不是值吗? 例如,如果我们使用, @RequestHeader(value = "abc", required = true) 参数
我们可以使用@RequestHeader 强制 header 参数而不是值吗? 例如,如果我们使用, @RequestHeader(value = "abc", required = true) 参数
我正在开发一个系统,需要为我们公司正在开发的应用程序中的所有 URL 发送不记名 token key (JWT),当存在需要下载的附件并单击它触发的链接时,就会出现问题移动设备上的浏览器。 如您所知,
是否有可能在 .htaccess (Apache 2.2) 中有一个 url 条件,当满足时它会执行 RequestHeader 指令?像这样的东西: if ( %{HTTP_HOST} == "ex
我正在制作一个记录请求 header 的 Chrome 扩展。 在我的background.js文件中我有这个代码 chrome.webRequest.onSendHeaders.addListene
我想在 apache 的 RequestHeader 上设置 SSL_CLIENT_S_DN_CN 的值,以下不起作用... SSLOptions +StdEnvVars SSLUserNam
我无法理解 play.api.mvc.Request[A] 之间的区别和 play.api.mvc.RequestHeader和 play.api.mvc.Request[play.api.mvc.A
我已经自定义了我的执行器/信息端点,我想使用标题中的信息来授权 RestTemplate调用另一个服务。 我在这里实现 InfoContributor: https://www.baeldung.co
注释@RequestHeader Spring框架的规定,方法参数应该绑定(bind)到Web请求头。 我工作的项目中,许多请求中都使用了@RequestHeader参数,但该参数本身从未在方法主体中
我正在使用 play 2.2.1 并尝试实现 404 请求的 Page。 为此,我在 View 中创建了一个 errorPage.scala.html ,并在 MyProject->app->cont
我可以将@RequestHeader 放在模型对象属性上吗? IE。 class MyModel { String ua; public void setUa(@RequestHead
我在用 @RequestHeader(value = "channel") String channel 在 Spring 应用程序 Controller 中获取 header ,它适用于普通 hea
我正在接收一个 JSON 对象,该对象是从前端作为字符串发送给我的,我希望 spring-boot 将其解析为我的 Map。 我尝试过 @RequestHeader("header-name") Ma
我在 Controller 中有一个方法,例如有参数 @RequestMapping(value = "/{blabla}", method = RequestMethod.POST) @Respon
我的 Controller 中有方法: @RequestMapping(method = RequestMethod.POST) public CustomObject createCustomObj
在 spring 3.2 中,我们在 Controller 中使用了它: @RequestHeader Map headers 问题是标题键的映射可以是任何大小写,所以我们必须重新构建标题映射,强制键
是否有任何选项可以为 spring boot 中的所有 @RequestHeader 添加默认值? @RequestHeader(value = "User-Accept-Language", def
我的 htaccess 文件中的以下 RewriteRule 未设置请求 header 。 Header set Access-Control-Allow-Origin "*" RewriteEngi
我需要发送一个带有一些修改过的 header 的 Http 请求。几个小时后试图找到与 Selenium RC 等效的方法 Selenium.addCustomRequestHeader对于 Sele
在 Chrome 扩展程序中,我尝试创建一个动态规则,通过 declarativeNetRequest 将字符串附加到用户代理,如下所示: chrome.declarativeNetReque
我是一名优秀的程序员,十分优秀!