问题标签 [modelattribute]

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 投票
1 回答
10273 浏览

forms - 在同一个@Controller 中使用多个@ModelAttribute 方法

我在 Spring MVC 3 上有一个包含两种不同表单(有两个不同提交)的页面,我对 @ModelAttribute 方法有疑问。当我在同一个控制器上有两个时,它们并不总是执行使模型为 NULL。

编码:

不知道为什么,有时一切正常,每个方法都执行了,但有时它们没有执行。

更新:我有两个不同的控制器有同样的问题,所以它一定是 Spring 上的错误或者我做错了什么。

谢谢。

0 投票
1 回答
499 浏览

spring - Spring @ModelAttribute 和 @SessionAttribute 行为

SessionAttributes使用和ModelAttributes在一起的最佳方式是什么?例如,当我使用标记ModelAttribute方法和SessionAttribute类时,POJO 被添加到会话中,但是在其他使用相同名称的控制器中,ModelAttribute它不会检索我想要的,而是取一个出席会议。

ModelAttributes那么,管理with行为的最佳方法是SessionAttributes什么?谢谢。

0 投票
1 回答
654 浏览

forms - 如何动态地为中的 commandName 属性赋值春天的标签

我想使用以下JSTL代码将字符串值动态添加到 commandName 属性。

看起来 spring 将整个代码解释为字符串值,而不是分配值“add_item”或“update_item”。我也尝试使用 javascript 代码,但发现它给出的错误与客户端技术相同。谁能告诉我我的问题在哪里?

0 投票
1 回答
93 浏览

java - 页面无法加载,Bean 名称 ' ' 的 BindingResult 或普通目标对象可用作请求属性“

“ Bean name 'relationForm' 的 BindingResult 和普通目标对象都不能用作请求属性” 我对上面的错误有一些问题,我将在此处发布代码的重要部分。

感谢你们的任何想法controller.java

jsp 文件

0 投票
1 回答
3581 浏览

spring - Spring MVC SessionAttributes 与 ModelAttribute 用法

我最近正在尝试学习 Spring MVC。看来我不太了解@SessionAttributes 和@ModelAttribute 注释的功能。

这是我的控制器的一部分:

基本上有一个列出所有项目的jsp。Wenn 用户点击特定商品的“addToCart”,该商品将被添加到购物车列表中。我最好先解释一下我对这个控制器的理解,你可以告诉我我没有得到什么。

第一次调用 ItemController 时,会执行 createShoppingCart 和 createCount 方法,并将返回参数保存在 session 中,名称分别为“shoppingCart”和“count”。当用户调用 url ".../addToCart/1" 时,会调用 addToCart 方法。由于我需要来自会话的方法签名 2 值,因此控制器将在会话中查看这些值是否已经存在。是的。。此时 shoppingCart 是一个空列表,count 为 0。在方法体中,将选中的 item 添加到 list,count 为 2。jsp 将再次显示。

问题是,jsp 可以看到列表 shoppingCart 现在不为空。但计数仍为 0。当我将商品添加到购物篮时,我可以在 jsp 上看到 shoppingCart 已装满商品,但计数的值始终为 0。

实际上 shoppingCart 和 count 对象之间没有任何区别..我不明白为什么它会这样。我首先怀疑count类型是原始int,然后我将其更改为Integer typ,仍然没有解决问题。

0 投票
3 回答
12199 浏览

spring - Spring MVC - HttpSession.setAttribute 和 model.addObject 之间的区别

我最近正在尝试学习 Spring MVC。看来我不太了解@ModelAttribute 注解和HttpSession 的功能。

ShoppingCart 和 count 是会话属性。

问题出在 deleteFromCart 方法中。我从会话中获取计数,重新分配它并在会话中覆盖它。但是我在 jsp上看不到 count 的更新值。但是,可以看到更新后的 shoppingCart 对象已更新,尽管我没有覆盖会话对象(因为该对象与已经在会话中的对象相同)。

但是为什么计数没有更新,虽然我用 session.setAttribute 覆盖它?当我将新的计数对象添加到模型(model.addObject(“count”,count))时,我可以看到更新的计数值。但是为什么 session.setAttribute 没有给出相同的结果呢?

0 投票
2 回答
994 浏览

spring - Spring MVC 保留未公开属性模型的值

我有一个模型类:

控制器

binderInput的视图(jspx):

中的 DAO UserLogin.findUserLogin(1L); 将返回标题为“先生”和用户名“史密斯”的用户。我浏览localhost:8080/myWeb/dummy并且视图在标题字段中显示“先生”,然后我将标题更新为“先生”并提交表格。

在 binderResult 我希望看到

但实际上我得到了

有没有办法保留未编辑的 DAO 中的属性值(对于未在 jspx 视图中显示的字段)?

  1. 我想到了隐藏字段,但是在查看 html 源代码时可以查看用户名并且可以对其进行操作,所以我认为它不能成为解决方案。

  2. 我已经尝试过@SessionAttribute了,我认为将模型保留在会话中是有意义的,然后 springmodelAttribute只会填充从视图接收到的属性到会话模型。但是还是一样,标题更改为先生,但用户名为空。

  3. 我阅读@InitBinder并尝试
    dataBinder.setAllowedFields(new String[]{"title"});
    但没有帮助,它只是过滤属性而不保留其他不允许字段的值

我开始认为我必须手动执行以下操作:


有没有办法像我最初期望的那样在 Spring 中保留未编辑的属性?

谢谢你的帮助!

==================================================== ===

gouki 询问我的第二点的代码:

并在视图中将 modelAttribute 更改为userSession

<form:form action="dummy/binderResult" method="POST" modelAttribute="userSession">

==================================================== ===
问题
已解决 我读到的一些链接与此问题中已接受的答案相关:

  1. springsource 文档
  2. @Christopher Yang 的 stackoverflow 解释
  3. 调试队长的博客
0 投票
1 回答
219 浏览

spring - 代理控制器中的 Spring MVC @modelattribute

我有一个控制器,它有一个接口作为代理

界面如下:

问题是,不会随时调用 getCommand() 方法。我也尝试过将模型属性注释移动到实现类,但无济于事。

我哪里错了?

0 投票
1 回答
23692 浏览

jsp - Spring 3 - 在 JSP 中访问模型值

我有一个 JSP,我试图从我的模型中打印出值,但在我引用这些值的地方没有出现任何内容。这是我设置值的控制器方法。

这是我引用模型属性的 JSP 部分。

这是我的输出。而不是实际值,在属性的位置没有打印任何内容。

0 投票
2 回答
1459 浏览

spring-mvc - How to disable some request calling @ModelAttribute method in the same controller?

I am using Spring3 MVC. In my controller, I have many methods such as create, edit, and search.

In my form in the view, I need a list which contains some values from db. So I add a following method

```

```

Then, every request will call this method first and put the 'types' object in to my model object. But for some request, such like searh or listAll. I don't want to this method be called. How can I filter some request for the method which has @ModelAttribute("types") on it?

```

```

I don't want search request call populateTypes first since I don't need populateTypes in my search view.