03.1 使用普通表单向Spring控制器提交数据
场景,由前台jsp网页(表单)向数据库中添加一条信息
前台jsp
<head>
...
<%
// 取应用URL路径,放到"baseURL"变量中
pageContext.setAttribute("baseURL", request.getContextPath());
%>
...
</head>
<body>
<form action="${baseURL}/product_attribute/add_material" method="post">
<span>原料名称:</span>
<input type="text" name="mtName" />
<input type="submit" value="submit">
</form>
</body>
此处需要注意文本框的name="mtName",后面控制器取数据时候要用到。
控制器
@Controller
@RequestMapping("/product_attribute")// 1.
public class ProductAttributeController {
@Autowired
private MaterialService materialSerivce;
@RequestMapping(value = "/add_material", method = RequestMethod.POST)// 2.
public String addMaterialSubmit(@RequestParam(value="mtName") String serName){
Material mt = new Material();
mt.setMtName(serName);
materialSerivce.add(mt);
return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/product_attribute/manage";
}
在表单上点提交按钮时会触发form的action,action链接为"${baseURL}/product_attribute/add_material",被spring捕获后,会根据1.处的@RequestMapping找到控制器,再找到控制器中的addMaterialSubmit方法(根据RequestMapping的value)。@RequestParam说明参数serName的值来自页面的name值为"mtName"的控件。
materialSerivce.add(mt);调用后台数据库方法把新记录添加到数据库中。