spring_学习笔记Spring
Spring Web MVC
根据我对SpringWebMVC的理解是:所有对服务器的请求都通过分发器(DispatcherServlet)来控制分发,到底由谁去处理这个请求呢?那么根据配置文件找到对应得控制器来处理业务逻辑(SimpleFormController ……)来处理,处理完后有谁负责显示,什么方式显示呢?由视图与视图解析来处理。如下图:
ModelAndView
此类有6个构造函数
ModelAndView(String viewName)
对于这个构造方式的使用是:当返回显示层的使用只有一个显示层文件的别名(在application-)。
ModelAndView(String viewName, Map model)
对于这个构造方式的使用是:当显示的也面需要数据填充的时候,数据是model是HashMap类型的。通过和jstl的使用可以很方便的把数据写入view里面,如:
<input type="text" name="userName" size="10" value="<c:out value="${userName}"/>" />
那么这个view的text 的值就是model HashMap key 为userName的值,这个userName必须和HashMap一模一样。
ModelAndView(View view, Map model) 和 2 一样,只是view不是viewName 而是一个View类型的对象。
ModelAndView(View view)和 1 一样。
ModelAndView(String viewName, String modelName, Object modelObject)
这个构造函数的方式是:使用方式和 2 .一样,但同时提共了一个对ModelObject的映射,通过modelName可以找到modelObject 对象。注意:因为spring实现这种方式其实最本质和我们平时使用servlet编程是一样的等价于:(“modelName”,modelObject);(“modelName”) 来获取modelObject 对象。
ModelAndView(View view, String modelName, Object modelObject) 同 5 .
总结:ModelAndView 使用时比较简单的,但这个有一个很容易出现错误的是使用构造函数带model名和不带model名使用上的不同。如用 2 那么就必须这么写:<input type="text" name="userName" size="10" value="<c:out value="${userName}"/>" /> 那么才可以从modelObject对象取出key是userName的值。如果用 5 ,那么是取不到值的。必须写成:
<input type="text" name="userName" size="10" value="<c:out value="${}"/>" />才可以,上面的测试是通过jstl完成的。
Validator
这是spring为了实现服务器端验证而设计的一个接口,对于某一项功能需要作验证,那么需要在spring的配置文件配置上如:<property name="validator"><ref local="Login2Validator"/> </property>
如果在控制器的配置文件里配置了 validator 的属性,那么spring就会找相应的验证类做server的验证。这时候errors (类型好像是List 和struts一样)的length〉0,框架到下一步工作的就会检查errors length 如果〉0 那么那么框架就会自动回到formView 映射的jsp。如果=0 那么框架就继续执行它的下一步工作。
Error的使用:spring error mand对象。mand对象的某一个属性。在界面显示的时候用<spring:bind> tag来处理错误信息的显示。
Spring Tag Lib
1.<spring:bind> :通过path邦定对象或者对象的属性。
如:<table><tr><spring:bind path=""><td>用户名2</td> <td><input type="text" name="userName" size="10" value="<c:
spring 学习笔记 来自淘豆网m.daumloan.com转载请标明出处.