java get请求修改参数_为spring get请求添加自定义的参数处理操作(如下划线转驼峰)...

1.生成自己的注解(为了确定在哪些位置使用)

/**

* 关闭patch delete的model处理,否则会报错

*/

@Target({ElementType.METHOD})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface AliasProcessor {

}

/**

* 处理Get 请求参数的驼峰问题

* @author lw

*/

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

public @interface ValueFrom {

/**

* 参数名(别名)列表

*/

String[] value();

}

2.实现自己的ServletModelAttributeMethodProcessor

/**

* 为了减少使用 @RequestPath 将get参数封装到实体类中 重写ModelAttributeMethodProcessor

* 注:由于get请求为非raw请求,spring默认使用@ModelArrtribute注解,不会自动将下划线的数据转为驼峰数据

* 所以需要自定义一个处理器,进行该操作 *

* @author lw

*/

public class AliasModelAttributeMethodProcessor extends ServletModelAttributeMethodProcessor {

private ApplicationContext applicationContext;

/**

* 过滤掉patch请求,防止报错

*/

@Override

public boolean supportsParameter(MethodParameter parameter) {

return parameter.getMethodAnnotation(AliasProcessor.class)!=null;

}

public AliasModelAttributeMethodProcessor(ApplicationContext applicationContext) {

super(true);

this.applicationContext=applicationContext;

}

@Override

protected void bindRequestParameters(WebDataBinder bin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring MVC中整合WebSocket并获取请求参数,可以按照以下步骤进行: 1. 添加Maven依赖 ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>5.2.3.RELEASE</version> </dependency> ``` 2. 配置WebSocket 在Spring MVC的配置类中添加WebSocket配置: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/websocket").setAllowedOrigins("*"); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 其中,`MyHandler`是自定义的WebSocket处理器。 3. 实现WebSocket处理器 实现`WebSocketHandler`接口,并在`afterConnectionEstablished`方法中获取请求参数: ```java public class MyHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { Map<String, String> queryParams = getQueryParams(session); // 处理WebSocket连接建立后的逻辑 } private Map<String, String> getQueryParams(WebSocketSession session) { URI uri = session.getUri(); String query = uri.getQuery(); return parseQuery(query); } private Map<String, String> parseQuery(String query) { Map<String, String> queryParams = new HashMap<>(); if (query != null) { String[] parts = query.split("&"); for (String part : parts) { String[] keyValue = part.split("="); if (keyValue.length == 2) { String key = keyValue[0]; String value = keyValue[1]; queryParams.put(key, value); } } } return queryParams; } // 其他WebSocketHandler接口的实现 // ... } ``` 在`getQueryParams`方法中,通过`WebSocketSession`对象的`getUri`方法获取请求的URI,再通过`parseQuery`方法解析出参数。 4. 客户端发送请求 在客户端使用WebSocket发送请求时,可以在URL后面添加参数: ```javascript var socket = new WebSocket("ws://localhost:8080/websocket?param1=value1&param2=value2"); ``` 这样,在WebSocket连接建立后,`MyHandler`中的`afterConnectionEstablished`方法就能够获取到这些参数了。 以上就是在Spring MVC中整合WebSocket并获取请求参数的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值