我在基于Spring的Java应用程序中遇到过以下代码。
这是控制器:
@RequestMapping(value="/plants/form")
public String form(Model model){
model.addAttribute("plant", new Plant());
return "plants/create";
}
关于此代码段,我有几个问题。
form
的请求调用/plants/form
方法,
但我想知道哪个方法调用form
并将参数传递给它?model.addAttribute("plant", new Plant());
创建Plant
实例,并使其在名为 plant 的模型中可访问。
因此,模型的属性似乎是
像DB中的field
之类的东西。 的确切含义是什么?
模型的属性? value
中@RequestMapping(value="/plants/form")
的内容是什么?
是上述符号与之间的区别
@RequestMapping("/plants/form")
?考虑这个不完整的HTML代码段:
<form class="form-horizontal" role="form" th:object="${plant}" th:method="post" th:action="@{/plants}">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<input type="text" th:field="*{name}"></input>
</div>
</form>
$, *, @
,"${plant}"
和"*{name}"
中"@{/plants}"
的含义是什么?
public class DataContext : DbContext {...}
。我不清楚。
答案 0 :(得分:2)
1)如果我正确理解了你的问题,那么Spring MVC DispatcherServlet
负责根据配置的HandlerMapping
/ HandlerAdapter
将请求路由到你的处理程序方法。
2)模型在MVC中是M,它与关系数据库没有任何共同之处。而是将其视为Map
String
Object
个value
个值。 Spring MVC模型属性存储在请求范围下。
3)没有区别,@RequestMapping
是value
注释的属性。如果要传递单个value
参数而不传递其他参数,则可以按惯例省略$path = "";
if ($_SERVER['HTTP_HOST'] == "localhost")
{
$path = $_SERVER['DOCUMENT_ROOT']."/mysite";
}
else
{
$path = $_SERVER['DOCUMENT_ROOT'];
}
include_once($path.'/include/config.php');
。
4)这些是Thymeleaf Standard 和 SpringStandard 方言的标签和属性。更多信息here。