spring mvc 体验
来源:互联网 发布:食品网络营销策划书 编辑:程序博客网 时间:2024/05/16 12:45
Controller层次结构:
处理器映射:
BeanNameUrlHandlerMapping
SimpleUrlHandlerMapping(推荐)
MultiActionController的配置方式:
默认使用InternalPathmethodNameResolver进行方法名的解析
还可以使用ParameterMethodNameResolver,PropertiesMethodNameResolver进行解析
使用MultiActionController实现多动作请求
MultiActionController中请求处理的方法签名
// 'anyMeaningfulName'指任意方法名
public [ModelAndView | Map | void] anyMeaningfulName(HttpServletRequest, HttpServletRequest [,HttpSession] [,AnyObject])
方法签名中除了可以指定HttpServletRequest与HttpServletRequest外,还可以指定 HttpSession与AnyObject,AnyObject可以是命令对象类型或异常类型,当为命令对象
类型时,可以接收参数信息。
使用ParameterMethodNameResolver实现对方法名的解析
一个例子
web.xml中DispatcherServlet的配置:
<!-- 配置加载service与dao,这里省去 ,这里所有配置都写在了classpath:applicationContext.xml。<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-dao.xml,classpath:applicationContext-service.xml</param-value></context-param> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> --><!-- 配置DispatcherServlet --><servlet><servlet-name>example</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 可以不配置init-param,默认加载example-servlet.xml example与配置的DispatcherServlet名称相对应 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>example</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping>blogController类:
/** * @author evan * 请求处理的方法签名 * // 'anyMeaningfulName'指任意方法名 * public [ModelAndView | Map | void] anyMeaningfulName * (HttpServletRequest, HttpServletRequest [,HttpSession] [,AnyObject]) * 方法签名中除了可以指定HttpServletRequest与HttpServletRequest外,还可以指定 * HttpSession与AnyObject,AnyObject可以是命令对象类型或异常类型,当为命令对象 * 类型时,可以接收参数信息。 */public class BlogController extends MultiActionController {private BlogServiceImpl blogService;public void setBlogService(BlogServiceImpl blogService) {this.blogService = blogService;}public ModelAndView addBlog(HttpServletRequest request,HttpServletResponse response,HttpSession session,Blog blog) throws Exception {//打印sessionId与blog,验证是否已传递参数System.out.println("sessionId ------>"+session.getId());System.out.println("blog ------>"+blog);blogService.execute();ModelAndView modelAndView=new ModelAndView();modelAndView.setViewName("success");modelAndView.addObject("hello", "helloworld");modelAndView.addObject("type","addBlog");return modelAndView;}public ModelAndView showBlog(HttpServletRequest request,HttpServletResponse response) throws Exception {blogService.execute();return new ModelAndView("showBlog", "type", "showBlog...");}public ModelAndView deleteBlog(HttpServletRequest request,HttpServletResponse response) throws Exception {blogService.execute();return new ModelAndView("success", "type", "deleteBlog");}}
BlogServiceImpl类:
package cn.enjoylife.springmvc.service.impl;/** * @author evan * */public class BlogServiceImpl {public void execute(){System.out.println("execute......");}}applicationContext.xml
<!-- 使用简单url处理器映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><value>/blog/blogManager.html=blogController...... </value></property></bean><!-- 配置视图解析器 ,使用jstl视图--><bean id="jspViewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 使用ParameterMethodNameResolver作用方法名解析器 --><bean id="methodNameResolver"class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"><property name="paramName" value="method" /></bean><!-- methodNameResolver用于配置所使用的方法名解析器 --><bean id="blogController" class="cn.enjoylife.springmvc.web.action.BlogController"><property name="blogService" ref="blogService" /><property name="methodNameResolver" ref="methodNameResolver" /></bean><bean id="blogService" class="cn.enjoylife.springmvc.service.impl.BlogServiceImpl" />
访问方式:
http://localhost:8080/spring_mvc/blog/blogManager.html?method=deleteBlog 对应deleteBlog方法
http://localhost:8080/spring_mvc/blog/blogManager.html?method=addBlog&id=222 对应addBlog方法
- spring mvc 体验
- Spring MVC初体验
- Spring MVC初体验
- Spring MVC快速体验
- Spring MVC初体验
- Spring-MVC 初体验(一)
- Spring MVC 初体验(二)
- Spring MVC 初体验(三)
- Spring MVC初体验之出师不利
- Spring MVC初体验之xml配置文件
- Spring MVC + Security 4 初体验(Java配置版)
- Spring MVC 实战学习系列(一)初体验
- 体验 EXTJS4 的 MVC
- Spring3 MVC 初体验
- MVC架构初体验
- PHP MVC初体验
- MVC初体验
- 精炼 Spring MVC 教程(一)「框架初体验」
- 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥。必须还原备份密钥或删除所有加密的内容。
- DBNull与Null的区别
- C++以16进制输入10进制输出
- python中mysql中文的读写
- 静态块、自由块及构造函数的执行顺序
- spring mvc 体验
- gamebryo 2.5 编译找不到XINPUT_BATTERY_INFORMATION
- 转载一份 关于appwidget 很详细
- ACMSTEP 2.1.5 又见GCD //数论 GCD
- 我们【即将面对】和【已经面对】的那些事儿
- 总结学习到得知识
- gettimeofday() -- 获取当前时间
- 用perl操作word
- Unable to start activity ComponentInfo