- 浏览: 21424127 次
- 性别:
博客专栏
-
跟我学spring3
浏览量:2403122
-
Spring杂谈
浏览量:2996146
-
跟开涛学SpringMVC...
浏览量:5630387
-
Servlet3.1规范翻...
浏览量:257181
-
springmvc杂谈
浏览量:1592644
-
hibernate杂谈
浏览量:248792
-
跟我学Shiro
浏览量:5845630
-
跟我学Nginx+Lua开...
浏览量:697465
-
亿级流量网站架构核心技术
浏览量:779839
文章分类
- 全部博客 (329)
- 跟我学Nginx+Lua开发 (13)
- 跟我学spring (54)
- 跟开涛学SpringMVC (34)
- spring4 (16)
- spring杂谈 (50)
- springmvc杂谈 (22)
- 跟我学Shiro (26)
- shiro杂谈 (3)
- hibernate杂谈 (10)
- java开发常见问题分析 (36)
- 加速Java应用开发 (5)
- Servlet 3.1规范[翻译] (21)
- servlet3.x (2)
- websocket协议[翻译] (14)
- websocket规范[翻译] (1)
- java web (6)
- db (1)
- js & jquery & bootstrap (4)
- 非技术 (4)
- reminder[转载] (23)
- 跟叶子学把妹 (8)
- nginx (2)
- 架构 (19)
- flume架构与源码分析 (4)
最新评论
-
xxx不是你可以惹得:
认真看错误代码,有时候重启电脑就行了 醉了 我把数据库配置写死 ...
第十六章 综合实例——《跟我学Shiro》 -
dagger9527:
holyselina 写道您前面说到能获取调用是的参数数组,我 ...
【第六章】 AOP 之 6.6 通知参数 ——跟我学spring3 -
xxx不是你可以惹得:
Access denied for user 'root'@' ...
第十六章 综合实例——《跟我学Shiro》 -
dagger9527:
只有@AspectJ支持命名切入点,而Schema风格不支持命 ...
【第六章】 AOP 之 6.5 AspectJ切入点语法详解 ——跟我学spring3 -
dagger9527:
支持虽然会迟到,但永远不会缺席!
【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
4.11、AbstractWizardFormController
向导控制器类提供了多步骤(向导)表单的支持(如完善个人资料时分步骤填写基本信息、工作信息、学校信息等)
假设现在做一个完善个人信息的功能,分三个页面展示:
1、页面1完善基本信息;
2、页面2完善学校信息;
3、页面3完善工作信息。
这里我们要注意的是当用户跳转到页面2时页面1的信息是需要保存起来的,还记得AbstractFormController中的sessionForm吗? 如果为true则表单数据存放到session中,哈哈,AbstractWizardFormController就是使用了这个特性。
向导中的页码从0开始;
PARAM_TARGET = "_target":
用于选择向导中的要使用的页面参数名前缀,如“_target0”则选择第0个页面显示,即图中的“wizard/baseInfo”,以此类推,如“_target1”将选择第1页面,要得到的页码为去除前缀“_target”后的数字即是;
PARAM_FINISH = "_finish":
如果请求参数中有名为“_finish”的参数,表示向导成功结束,将会调用processFinish方法进行完成时的功能处理;
PARAM_CANCEL = "_cancel":
如果请求参数中有名为“_cancel”的参数,表示向导被取消,将会调用processCancel方法进行取消时的功能处理;
向导中的命令对象:
向导中的每一个步骤都会把相关的参数绑定到命令对象,该表单对象默认放置在session中,从而可以跨越多次请求得到该命令对象。
接下来具体看一下如何使用吧。
(1、修改我们的模型数据以支持多步骤提交:
- public class UserModel {
- private String username;
- private String password;
- private String realname; //真实姓名
- private WorkInfoModel workInfo;
- private SchoolInfoModel schoolInfo;
- //省略getter/setter
- }
- public class SchoolInfoModel {
- private String schoolType; //学校类型:高中、中专、大学
- private String schoolName; //学校名称
- private String specialty; //专业
- //省略getter/setter
- }
- public class WorkInfoModel {
- private String city; //所在城市
- private String job; //职位
- private String year; //工作年限
- //省略getter/setter
- }
(2、控制器
- package cn.javass.chapter4.web.controller;
- //省略import
- public class InfoFillWizardFormController extends AbstractWizardFormController {
- public InfoFillWizardFormController() {
- setCommandClass(UserModel.class);
- setCommandName("user");
- }
- protected Map referenceData(HttpServletRequest request, int page) throws Exception {
- Map map = new HashMap();
- if(page==1) { //如果是填写学校信息页 需要学校类型信息
- map.put("schoolTypeList", Arrays.asList("高中", "中专", "大学"));
- }
- if(page==2) {//如果是填写工作信息页 需要工作城市信息
- map.put("cityList", Arrays.asList("济南", "北京", "上海"));
- }
- return map;
- }
- protected void validatePage(Object command, Errors errors, int page) {
- //提供每一页数据的验证处理方法
- }
- protected void postProcessPage(HttpServletRequest request, Object command, Errors errors, int page) throws Exception {
- //提供给每一页完成时的后处理方法
- }
- protected ModelAndView processFinish(HttpServletRequest req, HttpServletResponse resp, Object command, BindException errors) throws Exception {
- //成功后的处理方法
- System.out.println(command);
- return new ModelAndView("redirect:/success");
- }
- protected ModelAndView processCancel(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
- //取消后的处理方法
- System.out.println(command);
- return new ModelAndView("redirect:/cancel");
- }
- }
page页码:是根据请求中以“_target”开头的参数名来确定的,如“_target0”,则页码为0;
referenceData:提供每一页需要的表单支持对象,如完善学校信息需要学校类型,page页码从0开始(而且根据请求参数中以“_target”开头的参数来确定当前页码,如_target1,则page=1);
validatePage:验证当前页的命令对象数据,验证应根据page页码来分步骤验证;
postProcessPage:验证成功后的后处理;
processFinish:成功时执行的方法,此处直接重定向到/success控制器(详见CancelController);
processCancel:取消时执行的方法,此处直接重定向到/cancel控制器(详见SuccessController);
其他需要了解:
allowDirtyBack和allowDirtyForward:决定在当前页面验证失败时,是否允许向导前移和后退,默认false不允许;
onBindAndValidate(HttpServletRequest request, Object command, BindException errors, int page):允许覆盖默认的绑定参数到命令对象和验证流程。
(3、spring配置文件(chapter4-servlet.xml)
- <bean name="/infoFillWizard"
- class="cn.javass.chapter4.web.controller.InfoFillWizardFormController">
- <property name="pages">
- <list>
- <value>wizard/baseInfo</value>
- <value>wizard/schoolInfo</value>
- <value>wizard/workInfo</value>
- </list>
- </property>
- </bean>
pages:表示向导中每一个步骤的逻辑视图名,当InfoFillWizardFormController的page=0,则将会选择“wizard/baseInfo”,以此类推,从而可以按步骤选择要展示的视图。
(4、向导中的每一步视图
(4.1、基本信息页面(第一步) baseInfo.jsp:
- <form method="post">
- 真实姓名:<input type="text" name="realname" value="${user.realname}"><br/>
- <input type="submit" name="_target1" value="下一步"/>
- </form>
当前页码为0;
name="_target1":表示向导下一步要显示的页面的页码为1;
(4.2、学校信息页面(第二步) schoolInfo.jsp:
- <form method="post">
- 学校类型:<select name="schoolInfo.schoolType">
- <c:forEach items="${schoolTypeList }" var="schoolType">
- <option value="${schoolType }"
- <c:if test="${user.schoolInfo.schoolType eq schoolType}">
- selected="selected"
- </c:if>
- >
- ${schoolType}
- </option>
- </c:forEach>
- </select><br/>
- 学校名称:<input type="text" name="schoolInfo.schoolName" value="${user.schoolInfo.schoolName}"/><br/>
- 专业:<input type="text" name="schoolInfo.specialty" value="${user.schoolInfo.specialty}"/><br/>
- <input type="submit" name="_target0" value="上一步"/>
- <input type="submit" name="_target2" value="下一步"/>
- </form>
(4.3、工作信息页面(第三步) workInfo.jsp:
- <form method="post">
- 所在城市:<select name="workInfo.city">
- <c:forEach items="${cityList }" var="city">
- <option value="${city }"
- <c:if test="${user.workInfo.city eq city}">selected="selected"</c:if>
- >
- ${city}
- </option>
- </c:forEach>
- </select><br/>
- 职位:<input type="text" name="workInfo.job" value="${user.workInfo.job}"/><br/>
- 工作年限:<input type="text" name="workInfo.year" value="${user.workInfo.year}"/><br/>
- <input type="submit" name="_target1" value="上一步"/>
- <input type="submit" name="_finish" value="完成"/>
- <input type="submit" name="_cancel" value="取消"/>
- </form>
当前页码为2;
name="_target1":上一步,表示向导上一步要显示的页面的页码为1;
name="_finish":向导完成,表示向导成功,将会调用向导控制器的processFinish方法;
name="_cancel":向导取消,表示向导被取消,将会调用向导控制器的processCancel方法;
到此向导控制器完成,此处的向导流程比较简单,如果需要更复杂的页面流程控制,可以选择使用Spring Web Flow框架。
4.12、ParameterizableViewController
参数化视图控制器,不进行功能处理(即静态视图),根据参数的逻辑视图名直接选择需要展示的视图。
- <bean name="/parameterizableView"
- class="org.springframework.web.servlet.mvc.ParameterizableViewController">
- <property name="viewName" value="success"/>
- </bean>
该控制器接收到请求后直接选择参数化的视图,这样的好处是在配置文件中配置,从而避免程序的硬编码,比如像帮助页面等不需要进行功能处理,因此直接使用该控制器映射到视图。
4.13、AbstractUrlViewController
提供根据请求URL路径直接转化为逻辑视图名的支持基类,即不需要功能处理,直接根据URL计算出逻辑视图名,并选择具体视图进行展示:
urlDecode:是否进行url解码,不指定则默认使用服务器编码进行解码(如Tomcat默认ISO-8859-1);
urlPathHelper:用于解析请求路径的工具类,默认为org.springframework.web.util.UrlPathHelper。
UrlFilenameViewController是它的一个实现者,因此我们应该使用UrlFilenameViewController。
4.14、UrlFilenameViewController
将请求的URL路径转换为逻辑视图名并返回的转换控制器,即不需要功能处理,直接根据URL计算出逻辑视图名,并选择具体视图进行展示:
根据请求URL路径计算逻辑视图名;
- <bean name="/index1/*"
- class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
- <bean name="/index2/**"
- class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
- <bean name="/*.html"
- class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
- <bean name="/index3/*.html"
- class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
/index1/*:可以匹配/index1/demo,但不匹配/index1/demo/demo,如/index1/demo逻辑视图名为demo;
/index2/**:可以匹配/index2路径下的所有子路径,如匹配/index2/demo,或/index2/demo/demo,“/index2/demo”的逻辑视图名为demo,而“/index2/demo/demo”逻辑视图名为demo/demo;
/*.html:可以匹配如/abc.html,逻辑视图名为abc,后缀会被删除(不仅仅可以是html);
/index3/*.html:可以匹配/index3/abc.html,逻辑视图名也是abc;
上述模式为Spring Web MVC使用的Ant-style 模式进行匹配的:
- ? 匹配一个字符,如/index? 可以匹配 /index1 , 但不能匹配 /index 或 /index12
- * 匹配零个或多个字符,如/index1/*,可以匹配/index1/demo,但不匹配/index1/demo/demo
- ** 匹配零个或多个路径,如/index2/**:可以匹配/index2路径下的所有子路径,如匹配/index2/demo,或/index2/demo/demo
- 如果我有如下模式,那Spring该选择哪一个执行呢?当我的请求为“/long/long”时如下所示:
- /long/long
- /long/**/abc
- /long/**
- /**
- Spring的AbstractUrlHandlerMapping使用:最长匹配优先;
- 如请求为“/long/long” 将匹配第一个“/long/long”,但请求“/long/acd” 则将匹配 “/long/**”,如请求“/long/aa/abc”则匹配“/long/**/abc”,如请求“/abc”则将匹配“/**”
UrlFilenameViewController还提供了如下属性:
prefix:生成逻辑视图名的前缀;
suffix:生成逻辑视图名的后缀;
- protected String postProcessViewName(String viewName) {
- return getPrefix() + viewName + getSuffix();
- }
- <bean name="/*.htm" class="org.springframework.web.servlet.mvc.UrlFilenameViewController">
- <property name="prefix" value="test"/>
- <property name="suffix" value="test"/>
- </bean>
当prefix=“test”,suffix=“test”,如上所示的/*.htm:可以匹配如/abc.htm,但逻辑视图名将变为testabctest。
私塾在线学习网原创内容(http://sishuok.com)
原创内容,转载请注明私塾在线【http://sishuok.com/forum/blogPost/list/5254.html】
评论
这个没有 请参考后边注解我写的例子
注解的我都看了,但是没有发现有这中需求的地方?或者你点下哪一节,我再去仔细看看谢谢
请参考 第六章源代码中的cn.javass.chapter6.web.controller.paramtype.WizardFormController
http://jinnianshilongnian.iteye.com/blog/1683388
没在文章中出现,不好意思
灰常谢谢
这个没有 请参考后边注解我写的例子
注解的我都看了,但是没有发现有这中需求的地方?或者你点下哪一节,我再去仔细看看谢谢
请参考 第六章源代码中的cn.javass.chapter6.web.controller.paramtype.WizardFormController
http://jinnianshilongnian.iteye.com/blog/1683388
没在文章中出现,不好意思
这个没有 请参考后边注解我写的例子
注解的我都看了,但是没有发现有这中需求的地方?或者你点下哪一节,我再去仔细看看谢谢
这个没有 请参考后边注解我写的例子
不知道我的理解是不是有误。
class对象存放在方法区 不是堆
过不了多久你就会认同我的观点亦或者我认同你的!
嗯 呵呵 可以去看下内存分配的知识
不知道我们所说的在"class对象"这个概念是不是同一个。我指的class对象是类似这种:
vo是一个VO类的对象实例。 我指的class对象是这个:VO.class 或者 vo.getClass();
是一个概念
不知道我的理解是不是有误。
class对象存放在方法区 不是堆
过不了多久你就会认同我的观点亦或者我认同你的!
嗯 呵呵 可以去看下内存分配的知识
不知道我们所说的在"class对象"这个概念是不是同一个。我指的class对象是类似这种:
vo是一个VO类的对象实例。 我指的class对象是这个:VO.class 或者 vo.getClass();
不知道我的理解是不是有误。
class对象存放在方法区 不是堆
过不了多久你就会认同我的观点亦或者我认同你的!
嗯 呵呵 可以去看下内存分配的知识
不知道我的理解是不是有误。
class对象存放在方法区 不是堆
过不了多久你就会认同我的观点亦或者我认同你的!
不知道我的理解是不是有误。
class对象存放在方法区 不是堆
不知道我的理解是不是有误。
如果在方法中,频繁的调用,肯定非常不好;
那能不能把这样
String pattern = "#,###.##"; private static final DecimalFormat df = new DecimalFormat(pattern);
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
一直很困惑!
帮我看看,万分感谢!
第一点:
DecimalFormat 不是线程安全的,如果多个线程使用且格式不一样可能造成线程安全问题,如
A线程需要 #,###.##格式
B线程修改成 ###.##格式 就会出现问题,但是如果不修改格式就没有问题的。
第二点:
只有类定义对象、常量字符串等才放在常量池
只要通过new的都是放在堆中
第三点
static变量/块是在类加载时初始化,且仅仅初始化一次, static变量可以复用且每个classloader一个实例(减少了实例数量)
第四点
如 class A{
static B b = new B();
}
static的b伴随A类定义存放在常量池,,但new B() 肯定在堆中
第五点
你不需要为【这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?】 担心,因为如果你不用会被垃圾回收。
当遇到性能问题再来考虑这个问题。
谢谢,明白了!
对于你说的第二点: "类定义对象"指的是Class对象还是别的什么?
如果在方法中,频繁的调用,肯定非常不好;
那能不能把这样
String pattern = "#,###.##"; private static final DecimalFormat df = new DecimalFormat(pattern);
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
一直很困惑!
帮我看看,万分感谢!
第一点:
DecimalFormat 不是线程安全的,如果多个线程使用且格式不一样可能造成线程安全问题,如
A线程需要 #,###.##格式
B线程修改成 ###.##格式 就会出现问题,但是如果不修改格式就没有问题的。
第二点:
只有类定义对象、常量字符串等才放在常量池
只要通过new的都是放在堆中
第三点
static变量/块是在类加载时初始化,且仅仅初始化一次, static变量可以复用且每个classloader一个实例(减少了实例数量)
第四点
如 class A{
static B b = new B();
}
static的b伴随A类定义存放在常量池,,但new B() 肯定在堆中
第五点
你不需要为【这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?】 担心,因为如果你不用会被垃圾回收。
当遇到性能问题再来考虑这个问题。
谢谢,明白了!
对于你说的第二点: "类定义对象"指的是Class对象还是别的什么?
这是遗留问题, 后续会有
如果在方法中,频繁的调用,肯定非常不好;
那能不能把这样
String pattern = "#,###.##"; private static final DecimalFormat df = new DecimalFormat(pattern);
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
一直很困惑!
帮我看看,万分感谢!
第一点:
DecimalFormat 不是线程安全的,如果多个线程使用且格式不一样可能造成线程安全问题,如
A线程需要 #,###.##格式
B线程修改成 ###.##格式 就会出现问题,但是如果不修改格式就没有问题的。
第二点:
只有类定义对象、常量字符串等才放在常量池
只要通过new的都是放在堆中
第三点
static变量/块是在类加载时初始化,且仅仅初始化一次, static变量可以复用且每个classloader一个实例(减少了实例数量)
第四点
如 class A{
static B b = new B();
}
static的b伴随A类定义存放在常量池,,但new B() 肯定在堆中
第五点
你不需要为【这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?】 担心,因为如果你不用会被垃圾回收。
当遇到性能问题再来考虑这个问题。
谢谢,明白了!
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
当然你可以选择实例池 来做,,如Common-pool 但没必要; 如果DecimalFormat的格式不会改,可以做成单例使用(没有多线程修改格式字符串,不存在线程安全问题)
如果在方法中,频繁的调用,肯定非常不好;
那能不能把这样
String pattern = "#,###.##"; private static final DecimalFormat df = new DecimalFormat(pattern);
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
一直很困惑!
帮我看看,万分感谢!
第一点:
DecimalFormat 不是线程安全的,如果多个线程使用且格式不一样可能造成线程安全问题,如
A线程需要 #,###.##格式
B线程修改成 ###.##格式 就会出现问题,但是如果不修改格式就没有问题的。
第二点:
只有类定义对象、常量字符串等才放在常量池
只要通过new的都是放在堆中
第三点
static变量/块是在类加载时初始化,且仅仅初始化一次, static变量可以复用且每个classloader一个实例(减少了实例数量)
第四点
如 class A{
static B b = new B();
}
static的b伴随A类定义存放在常量池,,但new B() 肯定在堆中
第五点
你不需要为【这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?】 担心,因为如果你不用会被垃圾回收。
当遇到性能问题再来考虑这个问题。
哎,这水平,哎!强烈的..........羡慕嫉妒恨!
哪敢BS呀,哎羡慕的不行了,我的水平能跟在你的后面就很不错了!
随便问个问题哈,老大!
假如现在有这样一个方法:
public static String toMoneyStyle(double number) { String pattern = "#,###.##"; DecimalFormat df = new DecimalFormat(pattern); return df.format(number); }
如果在方法中,频繁的调用,肯定非常不好;
那能不能把这样
String pattern = "#,###.##"; private static final DecimalFormat df = new DecimalFormat(pattern);
对象放到类的成员属性中,并且,在方法中调用呢?
如果能,那么DecimalFormat df 对象创建在什么地方,堆?还是常量对象池中?如果放在堆中,因为是static的,那么在类初始化时,就有一个这样的对象,这样是不是在项目中多了,容易引起【相对的】无用对象太多,而导致内存问题呢?
一直很困惑!
帮我看看,万分感谢!
哎,这水平,哎!强烈的..........羡慕嫉妒恨!
哎,这水平,哎!强烈的..........羡慕嫉妒恨!
你是夸我呢 还是BS我呢 谢谢啊
发表评论
-
跟我学SpringMVC目录汇总贴、PDF下载、源码下载
2012-12-22 08:05 619097扫一扫,关注我的公众号 购买地址 ... -
源代码下载——第七章 注解式控制器的数据验证、类型转换及格式化
2012-12-01 07:12 33347源代码请到附件中下载。 其他下载: ... -
SpringMVC数据验证——第七章 注解式控制器的数据验证、类型转换及格式化——跟着开涛学SpringMVC
2012-11-23 07:47 2382007.4、数据验证 7.4.1 ... -
SpringMVC数据格式化——第七章 注解式控制器的数据验证、类型转换及格式化——跟着开涛学SpringMVC
2012-11-19 19:18 887257.3、数据格式化 ... -
SpringMVC数据格式化——第七章 注解式控制器的数据验证、类型转换及格式化——跟着开涛学SpringMVC
2012-11-19 16:41 46支持一下博主:------------------ ... -
SpringMVC数据类型转换——第七章 注解式控制器的数据验证、类型转换及格式化——跟着开涛学SpringMVC
2012-11-12 20:08 1229597.1、简介 在编写可 ... -
扩展SpringMVC以支持绑定JSON格式的请求参数
2012-11-08 07:43 125845上一篇:《扩展SpringMVC以支持更精准的数据绑 ... -
扩展SpringMVC以支持更精准的数据绑定1
2012-11-06 07:38 76476最新版请点击查看FormM ... -
SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-10-26 07:57 1525406.6.2、@RequestParam绑定单个请求参 ... -
SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-10-23 14:45 15---------------------------- ... -
SpringMVC强大的数据绑定(1)——第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-10-16 07:48 120794到目前为止,请求已经能交给我们的处理器进行处理了,接下来 ... -
Spring MVC 3.1新特性 生产者、消费者请求限定 —— 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-10-10 14:16 483406.6.5、生产者、消费者限定 6.6.5.1、基 ... -
SpringMVC3强大的请求映射规则详解 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-24 15:29 104592声明:本系列都是原创内容,觉得好就顶一个,让更多人知道! ... -
请求映射之URL路径映射 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-24 11:50 946.5.1.1、普通URL路径映射 @Request ... -
请求映射之请求方法映射限定 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-24 11:48 536.5.2、请求方法映射 ... -
请求映射之请求方法映射限定 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-24 10:47 216.5.2、请求方法映射限定 一般我们熟悉的表单 ... -
请求映射之URL路径映射 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-24 07:05 1636.5.1.1、普通URL路径映射 @Reques ... -
源代码下载 第六章 注解式控制器详解
2012-09-22 07:11 41826源代码请到附件中下载。 其他下载: 跟着 ... -
注解式控制器运行流程及处理器定义 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-20 17:47 67195声明:本系列都是原创内容,觉得好就顶一个,让更多人知道! ... -
注解式控制器运行流程及处理器定义 第六章 注解式控制器详解——跟着开涛学SpringMVC
2012-09-20 15:54 96.1、注解式控制器简介 一、Spring2. ...
相关推荐
NULL 博文链接:https://jinnianshilongnian.iteye.com/blog/1679570
跟着开涛学SpringMVC,很好的MVC教程,简单易懂,PDF高清版本
PDF,源代码 开涛学SpringMVC 第一章源...第四章 Controller接口控制器详解 源代码下载 第五章 处理器拦截器详解——跟着开涛学SpringMVC 第六章 注解式控制器详解 第七章 注解式控制器的数据验证、类型转换及格式化
跟开涛学springmvc pdf电子文档版 适合学习springmvc 非常好的教程
第四章 Controller接口控制器详解(4) 第四章 Controller接口控制器详解(5) 第四章 Controller接口控制器详解(6) 第五章 处理器拦截器详解 第六章 注解式控制器详解 注解式控制器运行流程及处理器定义 第...
跟开涛学 SpringMVC跟开涛学 SpringMVC跟开涛学 SpringMVC跟开涛学 SpringMVC
第四章 Controller接口控制器详解(4) 第四章 Controller接口控制器详解(5) 第四章 Controller接口控制器详解(6) 第五章 处理器拦截器详解 第六章 注解式控制器详解 注解式控制器运行流程及处理器定义 第六章 ...
第四章 Controller接口控制器详解(3).pdf 第四章 Controller接口控制器详解 (4).pdf 第四章 Controller接口控制器详解 (5).pdf 第四章 Controller接口控制器详解 (6).pdf 第四章 Controller接口控制器详解...
跟开涛学SpringMVC-高清版,找了好久的,分享给大家。
Spring MVC学习(四)-------Controller接口控制器详解1
跟开涛学SpringMVC(4.6)Controller接口控制器详解(6)Java开发Java经验技巧共10页.pdf.zip
跟开涛学SpringMVC源代码汇总
跟开涛学SpringMVC 高清 带书签 pdf 通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,所以...
跟开涛学SpringMVC(4.3)Controller接口控制器详解(3)Java开发Java经验技巧共9页.pdf.zip
跟开涛学习springmvc spring 3 pdf ,非常好的资料。我将原文档的spring合并为一份,查看更方便一些。
开涛写的中文springmvc开发文档 , 初学者可以下载学习,或者当做字典用。
跟开涛学SpringMVC(5)处理器拦截器详解Java开发Java经验技巧共13页.pdf.zip
SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行...应用控制器其实拆为处理器映射器(HandlerMapping)进行处理器管理和视图解析器(ViewResolv