上个星期读了一些spring mvc源码,现在可以将之前的写的简单的例子贴出来,为以后的开发作些准备。
这是一个非常简单的例子,就是使用SimpleFormController实现spring mvc的例子。
首先,在web.xml上配置DispatcherServlet。
上面配置了DispatcherServlet,而且所有的以htm,vm结尾的url请求都被DispatcherServlet处理。
如果还有用到spring的其他技术的话就需要上面的listener了。
接下来我们看一下控制器类。
referenceData()方法是为页面初始渲染提供必要的数据。onSubmit()方法是在处理此对应页面提交时数据,并转向另外一个页面。
这是一个简单的例子,所以我们发出一个URL请求时只用用到referenceData()的方法体。
我们发出这样的URL请求:
http://localhost:8080/winking/home.vm 或http://localhost:8080/winking/home.htm.
然后到这样一个页面v.vm:
接下来就是核心的配置文件了,上面web.xml里的servlet名称是winking,所以DispatcerServlet会找winking-servlet.xml.
这样子就可以了。
当然上面还是要注意的地方,就是中文问题。
1.需要在vm模板文件加上:<meta http-equiv="Content-Type" content="text/html; charset=GBK">
2.在"velocityConfigurer"加上
<property name="velocityProperties">
<props>
<prop key="input.encoding">GBK</prop>
<prop key="output.encoding">GBK</prop>
</props>
</property>
3.在"viewResolver"加上<property name="contentType">
<value>text/html;charset=GBK</value>
</property>
最主要是确保所有的字符集都是统一的。
上面四个property很简单,前面两个是在模板方便处理时间和数字格式显示。
后面两个是在vm模板能够访问request和session的数据。
另外还需要一般性的配置,就是在web.xml配置filter
这样子就完全解决了spring mvc velocity的中文问题了。