发表于: 2017-09-02 23:27:32
1 964
一、今日完成
1.今天继续完善REST接口的maven web项目,编写controller层组件
@Controller
@RequestMapping("/rest")
public class PersonController {
private static final Log logger = LogFactory.getLog(PersonController.class);
@Resource
private PersonService oneService;
@ReuestMapping(value="/add", method = RequestMethod.GET)
public String insertOne() {
log.info("添加一条记录");
return "add";
}
@ReuestMapping(value="/addOne", method = RequestMethod.POST)
public String insertOnePost(@ModelAttribute("one")Person one) {
System.out.println("------>"+one.getName());
log.info("添加记录"+one);
oneService.insertOne(one);
return "rediect:/person/list";
}
@ReuestMapping(value="/delete/{id}", method = RequestMethod.GET)
public String deleteOnePost(@ModelAttribute("id") long id) {
log.info("删除记录");
try{
oneService.deleteOne(id);
}catch(Exception e){
e.printStackTrace();
}
return "redirect:/person/list";
}
@ReuestMapping(value="/update/{id}", method = RequestMethod.GET)
public String updateOne(@PathVariable("id")long id,Model model) {
System.out.println("-------"+id);
log.info("修改记录");
model.addAttribute(id);
return "update";
}
@ReuestMapping(value="/updateOne", method = RequestMethod.POST)
public String updateOnePost(@ModelAttribute("one")Person one) {
System.out.println("------>"+one.getName());
oneService.updateOne(one);
System.out.println("------>" + one);
log.info("修改成功");
return "rediect:/person/list";
}
}
2.学习使用JSP处理表单
Spring MVC通过使用其自定义的JSP表单提供了表单处理方法,表单标签库使用标签创建视图,提供与model类的绑定功能,将浏览器提交的HTTP请求中的参数映射到模型。
1)在页面中使用标签库,首先需要配置标签库
<%@taglib uri="heep://www.springframework.org/tags/form" prefix="mvc" %>
2)path特性实现把用户通过视图发送的HTTP请求绑定到模型
<mvc:input path="name" />
path指向User类的name属性,页面请求输入的值被自动设置到User类的name属性。
3)form标签显示一个HTML表单,针对GET方法,保证用户输入的数据被发送到表单声明中的一个URL。
<mvc :form modelAttribute="User" action="result.mvc">
<table>
<tr>
<td><mvc:label path ="name">Name </mvc:label></td>
<td><mvc:input path="name"/></td>
</tr>
<tr>
<td><mvc:label path ="age">Age </mvc:label></td>
<td><mvc:input path="age"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
</mvc:form>
modelAttribute特性向内部标签公开绑定路径指向model类,表单内定义的path特性指向相同模型类的属性
4)将User类的detail属性与textarea标签绑定,显示一个文本区域
<mvc: textarea path="detail"/>
显示一个type特性被设置为password的HTML input标签,使用path特性将其绑定到User类的password属性
<mvc :password path="password">
5)输入日期
<mvc:input path="birthday"/>
@DateTimeFormat(pattern="yyyy-MM-dd")
private LocalDate birthday;
为了使用@DateTimeFormat注解,需要在Spring的ApplicationContext中定义<mvc:annotation-driven/>
5)使用下拉框选择数据
<mvc:select path="country" items="${countries}"/>
items特性指向集合、数组或者其他用来在select标签中生成HTML option标签的对象映射。可以将countries列表作为对象设置到控制器的ModelAndView实例
final String[ ] countries = { "CN", "JP", "US"};
modelAndView.addObject("countries", countries);
6)使用单选按钮进行选择
<mvc:radiobutton path="gender" label="Female" value="F"/>
<mvc:radiobutton path="gender" label="Male" value="M"/>
value特性定义了将要被提交的内容,label特性定义了向用户显示的内容。
7)使用复选框进行选择
<mvc:checkbox path="nonSomking"/>
checkbox和ccheckboxes标签显示一个HTML input标签。
二、明日计划
完成JSP页面编写,解决执行代码过程中BUG,完成任务2。
三、遇到的问题
在创建controller类过程中,使用了@ReuestMapping注解,IDEA一直提示未能识别该注解,向pom.xml中添加了spring相关的依赖项,却没有任何反应。
四、收获
学习使用标签处理web应用程序的表单。
评论