问题标签 [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 回答
3317 浏览

spring - 测试以@ModelAttribute 作为参数的弹簧控制器方法

我正在尝试使用这种方法测试控制器:

@RequestMapping(value="/test")
public ModelAndView generateRecords(@ModelAttribute("Employee") Employee employee) {

而且我想知道如何创建一个单元测试来测试它。目前我正在使用:

在 ModelAttribute (Employee) 的 NULL 值中运行此测试结果

在进行集成测试时,有什么方法可以将模型属性对象传递给 Controller 吗?

谢谢


简单总结一下:

解决此问题的方法是选择 html 元素名称并在 MockHttpRequest 对象中填充参数值并将其传递。

例子:

0 投票
10 回答
112147 浏览

redirect - 如何将模型属性从一个 Spring MVC 控制器传递到另一个控制器?

我正在从一个控制器重定向到另一个控制器。但我还需要将模型属性传递给第二个控制器。

我不想把模型放在会话中。

请帮忙。

0 投票
2 回答
5450 浏览

forms - Spring @ModelAttribute 不关心 commandName

JSP:

这就是我在 Spring 中获取模型的方式:

而且我仍然可以使用weather来进行操作,并且效果很好,例如:

我的问题是……为什么这行得通?

0 投票
2 回答
8626 浏览

java - Spring MVC 3.0 模型属性继承

我不确定这在 Spring MVC 3.0 中是否可行,但我正在尝试创建一个带注释的控制器,该控制器扩展另一个控制器,其模型属性取决于父级设置的模型属性。例如:

到目前为止,我一直无法让它工作 - 它引发以下异常:

请求处理失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [java.util.List]:指定的类是接口] 根本原因 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [java.util .List]:指定的类是 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:762) 的 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101) 的接口。 .. ETC ...

当从 ChildModel.getNumber() 中移除对父设置的属性的依赖时(通过移除@ModelAttribute("numbers") List<Integer> numbers参数),两个模型属性方法都会被调用。但是,ParentModel.getNumbers() 总是在 ChildModel.getNumber() 之前调用。

请让我知道我是否遗漏了一些东西以使其完全正常工作,或者这是不可能的。

提前致谢!

编辑:

经过一些更多的实验,似乎不支持让模型属性依赖于其他模型属性。我将两个模型属性方法都放入了 ParentModel 中,它充其量只能偶尔工作......偶尔的行为可能是由于反射返回方法的顺序。当 ParentModel.getNumbers() 在 ChildModel.getNumber() 之前调用时(理想的顺序),它可以正常工作。发现这一点后,我的后续问题是:有没有办法指定调用模型属性方法的顺序?

0 投票
1 回答
2713 浏览

java - 如何使用重定向传递复杂的 ModelAttribute:在 Spring MVC 3.0 中

大家好,我在寻找答案时遇到问题...

用例:

在控制器中读取 Excel 电子表格。处理了 4 行工作表,第 2 行和第 3 行有一些错误,所以我跳过它们并继续进行其余的处理。但我想在处理完成后保留这些行以显示给用户。我想保留该行中的所有值以显示给用户只是为了提供足够的信息。

所以我试图做的是:

所以基本上我试图将 LinkedList 从一个 MVC 方法传递到另一个而不实际首先点击页面(除非我误解了“重定向:”的工作原理......它首先调用控制器方法是否正确?)

当我进入 bulkReview 方法的一个断点时,errorRows 是空的......那么我如何在两个方法之间保留这个值呢?

谢谢您的帮助!如果我需要澄清任何事情,请告诉我!:)

克里斯

0 投票
1 回答
903 浏览

spring - 来自jsp请求参数的Spring3 ModelAttribute

是否可以抓取各种表单组件,并将它们转化为对应的 DAO 对象?我试图避免为每个表单创建一个自定义 Bean(封装所有字段)。

前任:

目前,我必须使用 HttpRequest,提取值 (29,63),并将它们用作主键来查找正确的数据库对象。我不知道是否有一种使用 ModelAttribute 自动连接它的快速方法。

谢谢!

0 投票
1 回答
6742 浏览

java - Java - Spring 3.0 MVC 和 @ModelAttribute

我需要对 Spring 3.0 MVC 和 @ModelAttribute 带注释的方法参数进行一些说明。我有一个看起来像这样的控制器:

在我的 home.jsp 上,我有一个像这样的表单,它将他的数据发送到 MyController 的 RequestMethod.POST 方法

现在如果我尝试访问 home.jsp 我得到这个异常:

为了解决这个问题,我发现我需要添加

MyController 的 Request.GET 方法的参数,即使我不会在该方法中使用 obj。例如,如果使用不同的 commandName 向 home.jsp 添加另一个表单,如下所示:

我还必须在 RequestMethod.GET 上添加该参数,现在看起来像:

或者我得到同样的例外。我要问的是这是正常的 Spring 3 MVC 行为还是我做错了什么。为什么我需要将所有 @ModelAttribute 参数放在 RequestMethod.GET 方法上?

提前感谢您的帮助

斯特凡诺

0 投票
1 回答
3646 浏览

spring-mvc - @ModelAttribute 形成的模型不能在另一个控制器中使用

我的 UserController.java

我的 SuccessController.java

我没有得到"user"模型SuccessController,所以当我使用${user.name}in时userSuccess.jsp,我没有得到任何价值。

当我在第 1 行设置用户模型时,为什么我不在另一个控制器中获取此值?如果我将这个模型保存在 Session using 中@SessionAttributes,我可以在另一个控制器中访问它。

那么使用 形成的模型的范围是什么@ModelAttribute

0 投票
1 回答
1952 浏览

spring - 为什么在 jsp 中 ModelMap 属性的值会发生变化?

我有一个控制器如下:

ChangeUserDetails.jsp 是:

为什么当我在 jsp 中设置/更改命令对象userDetailsCmd ( userDetailsCmd.userType ) 的值时, user.userType的值总是会改变?这是因为两者都具有相同的属性名称(userType)吗?

编辑: UserCommand 类(命令对象)是:

和用户类(一个 POJO )是:

0 投票
1 回答
1562 浏览

java - 为什么我在 Spring 收到此消息?“ Bean 名称 'removedTeam' 的 BindingResult 和普通目标对象都不能用作请求属性”

这是我正在编写的一个简单程序,用于理解 @RequestMapping 注释等。我有两个控制器。home 控制器是主页并呈现 home.jsp。团队控制器处理 team.jsp。主页上有一个删除团队表单,用于从数据库中删除团队对象。这工作得很好。要添加团队,用户单击将他们带到 team.jsp 的链接。在该页面上,用户可以输入新团队的数据。一旦用户输入此信息,数据库就会成功更新。函数“storeTeam”然后返回到家庭控制器中的“家”。这就是问题发生的地方:我收到此消息:

“ Bean 名称 'removedTeam' 的 BindingResult 和普通目标对象都不能用作请求属性”

当应该调用 home 函数以使用数据库内容重新填充表时,为什么在 home 控制器中调用“removeAteam”函数?以下是相关文件。谢谢您的帮助。

TeamController.java

这些是控制器,这里是视图:

主页.jsp

团队.jsp

这是 servlet 上下文:

...最后是 web.xml