initbinder对ajax不起作用,InitBinder不被调用/调用

Save

列表:的人对象列表 的OBJ:

Class obj{

Person person;

getter/setters

}

在这JSP,我有当选择特定单选按钮附加的人。

在控制器端

@RequestMapping(value = "/save", method = RequestMethod.POST)

public String postProcess(@ModelAttribute("obj") Obj obj,BindingResult error) {

//processing

return "anotherJsp";

}

@InitBinder

public void initBinder(WebDataBinder binder, Locale locale, HttpServletRequest request) {

binder.registerCustomEditor(Obj.class,"person", new PropertyEditorSupport() {

@Override

public void setAsText(String text) {

//processing for conversion of person object String to Person Object

setValue(text);

}

});

}

我在这里使用initbinder,因为我正从JSP Person对象的字符串...所以我得到的结合异常无法从字符串转换成个人。

当将数据绑定到modelAttribute.Hence时,在initbinder中我会将字符串转换为Person对象之前调用InitBinder。

这里主要的问题是我的InitBinder在Not called/Invoked。 请给我解决方案。

谢谢。

### RuoYi 框架中请求参数和响应结果的加解密实现 #### 请求参数加密 为了确保传输安全,在RuoYi框架中可以采用`ControllerAdvice`机制来统一处理请求参数的加密。具体来说,通过创建一个名为`SecretRequestAdvice`的类来拦截所有的HTTP POST请求,并对其进行加密处理[^2]。 对于GET类型的请求,则可以通过自定义过滤器来进行单独处理。这是因为GET请求通常用于获取资源而非提交数据,因此其安全性需求有所同。在这种情况下,建议开发人员根据实际业务逻辑设计相应的过滤器以满足特定的安全要求[^4]。 ```java // SecretRequestAdvice.java 示例代码片段 @RestControllerAdvice public class SecretRequestAdvice { @InitBinder protected void initBinder(WebDataBinder binder) throws Exception { // 对于POST请求, 进行加密操作... } } ``` #### 响应结果解密 针对响应结果的解密工作同样重要。在RuoYi框架内,这一步骤可以在全局异常处理器或AOP切面编程的帮助下完成。更常见的是使用`@RestControllerAdvice`注解配合自定义的`SecretResponseAdvice`类来捕获所有控制器层返回的对象实例,并执行必要的解码过程。 当涉及到Vue前端与Java后端之间的交互时,还需要特别注意前后端之间关于编码方式的一致性问题。例如,在发送AJAX请求之前先调用JavaScript库对敏感字段实施SM4算法加密;而在服务器接收到这些已加密的信息之后再利用对应的Java版本SM4工具包将其还原为原始明文形式[^5]。 ```java // SecretResponseAdvice.java 示例代码片段 @ResponseBodyAdvice public class SecretResponseAdvice implements ResponseBodyAdvice<Object> { @Override public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) { return true; } @Override public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { // 执行解密逻辑... return decryptedBody; } } ``` 此外,如果希望进一步简化整个流程的话,也可以考虑直接修改`response.js`文件内的相应配置项,从而使得每次从后台接收过来的数据都能够自动经过一层额外的安全验证——即先被解密然后再转换成为JSON对象供客户端解析使用[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值