问题标签 [spring-mvc-initbinders]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-mvc - Spring MVC:请求范围,尝试使用 binder.setDisallowedFields 更新命令对象
我有这个对象
我有以下控制器的方法
直到这里控制器能够创建一个表单(GET)并提交(POST)一个新的 命令对象,Validation
代码运行良好。
问题在于更新。
我有以下内容:
观察我有binder.setDisallowedFields("id")
问题是:
- 当表单或命令有任何错误时,控制器会重新渲染视图,并且表单会显示错误消息,但没有 ID 值
或者
- 如果我尝试更新对象,当然保留 id 值,并且没有任何错误以简单地继续更新,它会失败
控制台中出现以下内容:
id为空。我如何解决这个问题,保持请求范围?
我有一个正在使用的备用控制器,@SessionAttributes
并且一切正常。但是,如果用户在同一个 Web 浏览器中打开了许多选项卡,一个用于创建,另一个用于更新,那么这是一个巨大的风险,所有这些都将是非常错误的。根据Spring MVC + Session 属性和多个选项卡,应使用请求范围而不是会话范围。它有道理。
可悲的是,Spring似乎不会解决这个问题: @SessionAttributes 不适用于选项卡式浏览
添加
根据你的建议,我有以下几点:
观察使用的方法@RequestParam
,我的问题是当要更新的 URL 具有以下样式时,如何更新该方法
http://localhost:8080/spring-utility/deportista/1/actualizar.htm
。URL中没有参数,因此@RequestParam
现在没用。
我已经阅读了 Spring 参考文档: 在方法上使用 @ModelAttribute
第二次加法
是的,你是对的,我昨天也这样做了,但我忘记分享以下内容:
由于@ModelAttribute
之前总是通过任何handler
方法调用a,因此以下URL失败http://localhost:8080/spring-utility/deportista/registrar.htm
,页面上出现以下内容
当然因为 URL 不包含预期的id
. 因此,我无法创建新记录以供以后编辑/查看。
我可以确认,对于以下工作:
http://localhost:8080/spring-utility/deportista/1/detalle.htm
http://localhost:8080/spring-utility/deportista/1/actualizar.htm
id (1) 被检索。
我该如何解决这个问题?
谢谢你
spring - Spring/initBinder - 选择多个值时无法获取绑定的值
当我尝试保存 miniApple 的单个值时,以下代码可以正常工作。我可以在控制器的参数中看到 miniApple 对象值的值,即苹果。但是,如果有多个值,我将无法绑定。不确定在 initBinder 方法中写入的语法应该是什么,用于将字符串(逗号分隔值)转换为自定义对象列表(此处为 MiniApple 列表)
当我选择多个值时,我可以将 setAsText() 中的文本值作为逗号分隔值(例如:“miniApple1,miniApple2,miniAPlle3”)
控制器方法 save()
初始化活页夹方法
具有 setAsText 方法的自定义编辑器类
将获取绑定为控制器保存()方法的参数的值的对象
spring-mvc - 重命名 Spring MVC 模型属性的嵌套属性
我有以下表格:
我想将名为的属性重命名model
为其他名称,也许是advertisement
在发生绑定时,以便我可以 advertisement
在视图中引用它(百里香等)。
这可能使用 Spring MVC 吗?
编辑 1:这是我的应用程序AbstractForm
类:
你可以看到它使用了在 java 部分非常简洁的泛型。但是,我想model
在视图中自定义属性的名称,因此我提出了问题。
spring - java bean中的PropertyEditor是有状态的吗?
在了解 Spring 中的数据绑定时,我开始知道 PropertyEditors 是有状态的,这里的有状态是什么意思?
这是该文档的链接
java - 无法将“org.springframework.web.multipart.commons.CommonsMultipartFile”类型的值转换为所需类型
我有以下控制器方法:
我看到以下堆栈跟踪:
OnlyForImagesFileWrapper 源码:
如何避免问题?
我在哪里可以为此控制器方法为多部分文件设置转换策略?
附言
我尝试编写我的自定义 initbinder:
但是当我提交表单并且我看到上面提到的堆栈跟踪时,这个方法不会调用。
附言
M. Deinum指令执行后的结果(当我在saveTerminal
方法中时):
我还注意到我的 initbinder 方法没有调用。
有关我的代码的更多详细信息(M. Denium 建议之后的状态):
jsp:
控制器方法的参数:
java - 在spring mvc中自定义接受到控制器方法bean中的绑定请求参数和文件
我有以下课程:
和以下网址:
和以下控制器方法:
当我在 getRequestSupportKludge 方法处停止调试时,我看到 myDTO.isKiosk 等于 null。
我无法更改请求网址。
在哪里可以为我的请求参数配置映射?
spring - 自定义 DTO 内的映射请求参数和字段?
我有以下课程:
和以下网址:
和以下控制器方法:
现在它工作得很好,布尔字段可以正确解析。
现在 url 参数已更改为:
我不想更改 DTO 中的参数名称。有没有办法说spring来理解new_kiosk
应该将请求参数值放入kiosk
字段中?
java - 映射发生在普通对象而不是spring mvc中的列表
我正在尝试在 Spring MVC 中映射对象集合,但它给出的错误 Mapping of String 工作正常,但无法映射集合
org.springframework.beans.NotReadablePropertyException:bean 类 [com.medicine.yourmedics.model.FamilyHistoryForm] 的无效属性“familyHistory[0].relation”:字段“familyHistory[0].relation”不存在
我的 Jsp 文件看起来像
familyhistoryform 是familyHistory 类的包装器。
家族史pojo看起来像
仅出于测试目的创建了一个控制器,该控制器返回家庭历史对象列表
如果在 jsp 中我将表单输入的路径写为,那么它将在输入文本中path="familyHistory"
打印对象的字符串数组familyhistory
[com.medicine.yourmedics.model.FamilyHistory@472c6818, com.medicine.yourmedics.model.FamilyHistory@34662429, com.medicine.yourmedics.model.FamilyHistory@1dd01a9f, com.medicine.yourmedics.model.FamilyHistory@4983cc03]
java - 嵌套表单对象的 Spring 配置映射
我有以下课程
我有以下控制器方法:
我写了以下活页夹:
现在,如果我从客户端获得空对象,它将转换为以下结构:
预期结果:
如何更改我的代码?
java - 有条件地绑定 Spring MVC 字段
我想限制 my 允许的字段,WebDataBinder
使普通用户无法创建附加到其他帐户的对象。我可以很容易地使用@InitBinder
:
但是,我希望管理员能够设置该owner
字段。
我见过的唯一“声明式”解决方案是编写重复的控制器方法,这些方法根据用户的角色进行映射,并将不同的绑定规范附加到不同的字段。是否有任何干净的方法来动态指定允许/禁止/需要哪些字段?