问题标签 [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.

0 投票
0 回答
5366 浏览

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) 被检索。

我该如何解决这个问题?

谢谢你

0 投票
0 回答
657 浏览

spring - Spring/initBinder - 选择多个值时无法获取绑定的值

当我尝试保存 miniApple 的单个值时,以下代码可以正常工作。我可以在控制器的参数中看到 miniApple 对象值的值,即苹果。但是,如果有多个值,我将无法绑定。不确定在 initBinder 方法中写入的语法应该是什么,用于将字符串(逗号分隔值)转换为自定义对象列表(此处为 MiniApple 列表)

当我选择多个值时,我可以将 setAsText() 中的文本值作为逗号分隔值(例如:“miniApple1,miniApple2,miniAPlle3”)

控制器方法 save()


初始化活页夹方法


具有 setAsText 方法的自定义编辑器类


将获取绑定为控制器保存()方法的参数的值的对象


0 投票
1 回答
674 浏览

spring-mvc - 重命名 Spring MVC 模型属性的嵌套属性

我有以下表格:

我想将名为的属性重命名model为其他名称,也许是advertisement在发生绑定时,以便我可以 advertisement在视图中引用它(百里香等)。

这可能使用 Spring MVC 吗?

编辑 1:这是我的应用程序AbstractForm类:

你可以看到它使用了在 java 部分非常简洁的泛型。但是,我想model在视图中自定义属性的名称,因此我提出了问题。

0 投票
1 回答
104 浏览

spring - java bean中的PropertyEditor是有状态的吗?

在了解 Spring 中的数据绑定时,我开始知道 PropertyEditors 是有状态的,这里的有状态是什么意思?

这是该文档的链接

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/CustomEditorConfigurer.html

0 投票
1 回答
20924 浏览

java - 无法将“org.springframework.web.multipart.commons.CommonsMultipartFile”类型的值转换为所需类型

我有以下控制器方法:

我看到以下堆栈跟踪:

OnlyForImagesFileWrapper 源码:

如何避免问题?

我在哪里可以为此控制器方法为多部分文件设置转换策略?

附言

我尝试编写我的自定义 initbinder:

但是当我提交表单并且我看到上面提到的堆栈跟踪时,这个方法不会调用。

附言

M. Deinum指令执行后的结果(当我在saveTerminal方法中时):

http://dl2.joxi.net/drive/0005/3037/338909/150502/e592df25e4.jpg

我还注意到我的 initbinder 方法没有调用。

有关我的代码的更多详细信息(M. Denium 建议之后的状态):

jsp:

控制器方法的参数:

0 投票
2 回答
778 浏览

java - 在spring mvc中自定义接受到控制器方法bean中的绑定请求参数和文件

我有以下课程:

和以下网址:

和以下控制器方法:

当我在 getRequestSupportKludge 方法处停止调试时,我看到 myDTO.isKiosk 等于 null。

我无法更改请求网址。

在哪里可以为我的请求参数配置映射?

0 投票
2 回答
6006 浏览

spring - 自定义 DTO 内的映射请求参数和字段?

我有以下课程:

和以下网址:

和以下控制器方法:

现在它工作得很好,布尔字段可以正确解析。

现在 url 参数已更改为:

我不想更改 DTO 中的参数名称。有没有办法说spring来理解new_kiosk应该将请求参数值放入kiosk字段中?

0 投票
0 回答
90 浏览

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]

0 投票
1 回答
322 浏览

java - 嵌套表单对象的 Spring 配置映射

我有以下课程

我有以下控制器方法:

我写了以下活页夹:

现在,如果我从客户端获得空对象,它将转换为以下结构:

预期结果:

如何更改我的代码?

0 投票
0 回答
647 浏览

java - 有条件地绑定 Spring MVC 字段

我想限制 my 允许的字段,WebDataBinder使普通用户无法创建附加到其他帐户的对象。我可以很容易地使用@InitBinder

但是,我希望管理员能够设置该owner字段。

我见过的唯一“声明式”解决方案是编写重复的控制器方法,这些方法根据用户的角色进行映射,并将不同的绑定规范附加到不同的字段。是否有任何干净的方法来动态指定允许/禁止/需要哪些字段?