![](/img/trans.png)
[英]Spring MVC: How to unit test Model's attribute from a controller method that returns String?
[英]Model model in Controller's method parameters in Spring MVC
这可能是一个非常幼稚的问题,但是作为Spring MVC框架的初学者,我想知道而不是返回ModelAndView Object,我们可以从Controller的方法定义中返回一个jsp名称吗? 同样,显然所有方法似乎都将模型模型作为参数。 它们是什么意思?
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.debug("Entering renderShoeStoreApplication method");
//model.addAttribute("orderList", orderList);
logger.debug("Exiting renderShoeStoreApplication method");
return "home";
}
我想不是我们也可以写
/*
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView home(Locale locale, Model model) {
logger.debug("Entering renderShoeStoreApplication method");
//model.addAttribute("orderList", orderList);
logger.debug("Exiting renderShoeStoreApplication method");
ModelAndView homeModel = new ModelAndView("home");
return homeModel ;
}*/
请说明基本知识。 提前致谢。
我想你有两个问题
- 所有的方法似乎都以Model模型为参数
这不一定是必需的,您可以将http请求作为参数,并且可以从请求参数派生模型。 最终,spring mvc会为您执行此操作,以使bean验证后使用绑定结果使工作变得更加简单。
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, HttpRequest request) {
String name = request.getParamter("name");
// you can manually derive your model here
}
- 我们可以仅从Controller的方法定义中返回一个jsp名称吗?
您可以在控制器方法中传递just jsp名称(如果已将视图解析器配置为处理此名称的话)。
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
如果从控制器返回字符串,则默认情况下,控制器直接指向视图解析器以解析视图。 请检查此SO 帖子
您可以浏览以下资源,以了解Spring MVC的基础知识,首先是Spring MVC社区的官方文档 ,以及使用以下链接快速了解POC的一些技巧。
http://www.mkyong.com/tutorials/spring-mvc-tutorials/
为什么将模型作为参数传递给控制器方法,以及ModelView对象的用途是什么?。一旦您对Spring MVC架构有了基本的了解,所有这些问题都将得到解答。
是的,如果该方法没有要返回的任何数据,则控制器方法可以简单地返回一个String,该String表示应该呈现的视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.