我想我可能发现了springs web binder的一个关键bug,或者更有可能,我做了一些可怕的错误。基本上,来自一个servlet请求的数据会以某种方式复制到另一个请求中。
public class MyModelAttribute {
private String myModelParameter;
public String getModelParameter() {
return myModelParameter;
}
public void setModelParameter(String myModelParameter) {
this.myModelParameter = myModelParameter;
}
}
@InitBinder("myModelAttribute")
protected void initMyModelBinder(WebDataBinder binder) {
binder.setValidator(myValidator);
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
public ModelAndView someRequestMapping(@Valid @ModelAttribute("myModelAttribute") MyModelAttribute myModelAttribute,
BindingResult bindingResult) {
...
}
问题是StringTrimmer编辑器...它实际上不是我在代码中发布的设置。粘合剂内化是这样的。事实证明StringTrimmerEditor不是无状态的。因此,答案是初始化活页夹,就像它在问题中一样。不像下面的情况。
@InitBinder("myModelAttribute")
protected void initMyModelBinder(WebDataBinder binder) {
binder.setValidator(myValidator);
binder.registerCustomEditor(String.class, STRING_TRIMMER);
}
这个问题在这里有更好的描述https://jira.spring.io/browse/spr-12547
问题内容: 在Spring MVC中,将请求 参数 绑定到处理请求的方法参数很容易。我只是用。但是我可以对request 属性 做同样的事情吗?当前,当我想访问request 属性时 ,我必须执行以下操作: 但是我真的很想使用这样的东西: 不幸的是,这种方式行不通。我可以以某种方式扩展Spring功能并添加自己的“绑定器”吗? 编辑 (我要实现的目标) :我将当前登录的用户存储在request属性
除了使用自定义操作等之外,还有什么方法可以告诉绑定器,我希望它获取HTTP请求参数内容的值,并将其设置在我的模型对象的value属性上。以后的请求将重用相同的HTTP参数,所以我不能只是更新我的模型,因为该值将不断被覆盖
问题内容: 我从中检索到的Userprincipal是否绑定到请求或会话? 这是我访问当前登录用户的方式。如果当前会话被破坏,这将无效吗? 问题答案: 这取决于您如何配置它(或者说,您可以配置其他行为)。 在Web应用程序中,您将使用与交互的。 的Java文档以: 在请求之前,使用从已配置的{@link SecurityContextRepository}获取的信息填充{@link Securit
我想验证我的控制器中的一个请求参数。请求参数应该来自给定值列表中的一个,如果不是,则应该抛出错误。在下面的代码中,我希望请求参数orderBy来自@Values准许中存在的值列表。 我已经编写了一个自定义bean验证器,但不知何故,它不起作用。即使我为查询参数传递任何随机值,也不会验证并引发错误。
请求参数: 我想使用以下方法在Spring MVC中获取请求参数: 类定义如下: 发送请求时,我收到错误信息: bean类[com.example.demo.param.User]的无效属性“detail[gender]:非法获取属性“detail”引发异常;嵌套的异常是org。springframework。豆。NullValueInTestedPathException:bean类[com.e
问题内容: 我有一个带有GET处理程序的简单控制器,该处理程序接受一个对象来绑定请求参数: 这是一个简单的POJO类: 一切正常,但我想摆脱设置者,使该对象不可变为公共使用。在Spring 5.0.2 之前的处理程序方法文档中,我们了解到可能的有效方法参数是: 命令或表单对象将请求参数绑定到Bean属性(通过设置器) 或直接 绑定 到字段 是否可以以某种方式覆盖默认的Spring Boot配置,以