发表于: 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应用程序的表单。


返回列表 返回列表
评论

    分享到