code review

1. Controller return json数据时使用ModelandView

技术上讲,返回普通bean、map都是可以的, 从设计上讲返回view更统一

2.使用 WebDataBinder将表单参数进行类型转换

如下方法自动将表单参数转为Date类型

1
2
3
4
5
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATETIMEPATTERN24H);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); // 允许为空
}

3. SpringMVC 试图解析器配置

  • viewNames 配置的是视图模板文件的后缀

    1
    2
    3
    4
    5
    <property name="viewNames">
    <array>
    <value>*.ftl</value>
    </array>
    </property>
  • suffix如果配置了,Controller中写视图路径是可以省略后缀return "wap/index.ftl";写成return "wap/index";

    1
    <property name="suffix" value=".ftl" />

4. 装饰器应该使用url进行区分

下面是目前的配置,是通过请求url后缀区分的

1
2
3
4
5
6
7
8
9
10
11
12
<decorator name="main" page="main.ftl">
<pattern>*.htm</pattern>
</decorator>
<decorator name="wap" page="wap.ftl">
<pattern>*.html</pattern>
</decorator>
<decorator name="act" page="act.ftl">
<pattern>*.htl</pattern>
</decorator>
<decorator name="reg" page="reg.ftl">
<pattern>*.hml</pattern>
</decorator>