springmv 配置了controller配置怎么没效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&14107人阅读
spring(6)
1.web.xml&配置:
&servlet-name&dispatcher&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&description&加载/WEB-INF/spring-mvc/目录下的所有XML作为Spring MVC的配置文件&/description&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/spring-mvc/*.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&dispatcher&/servlet-name&
&url-pattern&*.htm&/url-pattern&
&/servlet-mapping&
这样,所有的.htm的请求,都会被DispatcherServlet处理;
初始化 DispatcherServlet 时,该框架在 web 应用程序WEB-INF 目录中寻找一个名为[servlet-名称]-servlet.xml的文件,并在那里定义相关的Beans,重写在全局中定义的任何Beans,像上面的web.xml中的代码,对应的是dispatcher-servlet.xml;当然也可以使用&init-param&元素,手动指定配置文件的路径;
dispatcher-servlet.xml&配置:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns:mvc=&http://www.springframework.org/schema/mvc&
xmlns:p=&http://www.springframework.org/schema/p&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd&&
使Spring支持自动检测组件,如注解的Controller
&context:component-scan base-package=&com.minx.crm.web.controller&/&
&bean id=&viewResolver&
class=&org.springframework.web.servlet.view.InternalResourceViewResolver&
p:prefix=&/WEB-INF/jsp/&
p:suffix=&.jsp& /&
2.spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void
ModelAndView
&&& @RequestMapping(&/show1&)&public ModelAndView show1(HttpServletRequest request,&&&&&&&&&&& HttpServletResponse response) throws Exception {&&&&&&& ModelAndView mav = new ModelAndView(&/demo2/show&);&&&&&&& mav.addObject(&account&,
&account -1&);& &&&&&& return& && }&
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的&#20540;,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
调用addObject()方法将&#20540;设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类,
具体请看类。
Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。
model.addAttribute(&pojo&, pojo);
@RequestMapping(&/demo2/show&)&&&& public Map&String, String& getMap() {&&&&&&&& Map&String, String& map = new HashMap&String, String&();&&&&&&&& map.put(&key1&, &value-1&);&&&&&&&& map.put(&key2&, &value-2&);&&&&&&&& return& &&& }&
在jsp页面中可直通过${key1}获得到&#20540;, map.put()相当于request.setAttribute方法。
写例子时发现,key&#20540;包括 - . 时会有问题.
View 可以返回pdf excel等,暂时没详细了解。
String 指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。
注意:如果方法声明了注解@ResponseBody ,则会直接将返回&#20540;输出到页面。
@RequestMapping(value = &/something&, method = RequestMethod.GET)&@ResponseBody& public String helloWorld()& {&
return &Hello World&;&}&
上面的结果会将文本&Hello World &直接写到http响应流。
@RequestMapping(&/welcome&)&public String welcomeHandler() {&
& return &center&;&}&
对应的逻辑视图名为“center”,URL= prefix前缀&#43;视图名称 &#43;suffix后缀组成。
void& 如果返回&#20540;为空,则响应的视图页面对应为访问地址
@RequestMapping(&/welcome&)&public void welcomeHandler() {}&
此例对应的逻辑视图名为&welcome&。
1.使用 String 作为请求处理方法的返回&#20540;类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。
2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀&#43;视图名称 &#43;suffix后缀组成。
3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。
Model model,HttpServletRequest request, ModelMap map声明变量
request.getSession().setAttribute(&test&, &haiwei2Session&);
request.setAttribute(&test&, &haiwei1request&);
map.addAttribute(&test&, &haiweiModelMap&);
model.addAttribute(&test&, &haiweiModel&);
我通过${test}这个方式取&#20540;,优先取Model和ModelMap的,Model和ModelMap是同一个东西,谁最后赋&#20540;的就取谁的,然后是request,最后是从session中获取
第一个Controller:
package com.minx.crm.web.
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
@Controller
public class IndexController {
@RequestMapping(&/index&)
public String index() {
return &index&;
@Controller注解标识一个控制器,@RequestMapping注解标记一个访问的路径(/index.htm),return
&index&标记返回视图(index.jsp);
注:如果@RequestMapping注解在类级别上,则表示一相对路径,在方法级别上,则标记访问的路径;
从@RequestMapping注解标记的访问路径中获取参数:
Spring MVC&支持RESTful风&#26684;的URL参数,如:
@Controller
public class IndexController {
@RequestMapping(&/index/{username}&)
public String index(@PathVariable(&username&) String username) {
System.out.print(username);
return &index&;
在@RequestMapping中定义访问页面的URL模版,使用{}传入页面参数,使用@PathVariable&获取传入参数,即可通过地址:&访问;
根据不同的Web请求方法,映射到不同的处理方法:
使用登陆页面作示例,定义两个方法分辨对使用GET请求和使用POST请求访问login.htm时的响应。可以使用处理GET请求的方法显示视图,使用POST请求的方法处理业务逻辑;
@Controller
public class LoginController {
@RequestMapping(value = &/login&, method = RequestMethod.GET)
public String login() {
return &login&;
@RequestMapping(value = &/login&, method = RequestMethod.POST)
public String login2(HttpServletRequest request) {
String username = request.getParameter(&username&).trim();
System.out.println(username);
return &login2&;
在视图页面,通过地址栏访问login.htm,是通过GET请求访问页面,因此,返回登陆表单视图login.jsp;当在登陆表单中使用POST请求提交数据时,则访问login2方法,处理登陆业务逻辑;
防止重复提交数据,可以使用重定向视图:
return &redirect:/login2&
可以传入方法的参数类型:
@RequestMapping(value = &login&, method = RequestMethod.POST)
public String testParam(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
String username = request.getParameter(&username&);
System.out.println(username);
可以传入HttpServletRequest、HttpServletResponse、HttpSession,&#20540;得注意的是,如果第一次访问页面,HttpSession没被创建,可能会出错;
其中,String username = request.getParameter(&username&);可以转换为传入的参数:
@RequestMapping(value = &login&, method = RequestMethod.POST)
public String testParam(HttpServletRequest request, HttpServletResponse response, HttpSession session,@RequestParam(&username&) String username) {
String username = request.getParameter(&username&);
System.out.println(username);
使用@RequestParam&注解获取GET请求或POST请求提交的参数;
获取Cookie的&#20540;:使用@CookieValue&:
获取printwriter:
可以直接在Controller的方法中传入PrintWriter对象,就可以在方法中使用:
@RequestMapping(value = &login&, method = RequestMethod.POST)
public String testParam(PrintWriter out, @RequestParam(&username&) String username) {
out.println(username);
获取表单中提交的&#20540;,并封装到POJO中,传入Controller的方法里:
POJO如下(User.java):
public class User{
…此处省略getter,setter...
通过表单提交,直接可以把表单&#20540;封装到User对象中:
@RequestMapping(value = &login&, method = RequestMethod.POST)
public String testParam(PrintWriter out, User user) {
out.println(user.getUsername());
可以把对象,put&入获取的Map对象中,传到对应的视图:
@RequestMapping(value = &login&, method = RequestMethod.POST)
public String testParam(User user, Map model) {
model.put(&user&,user);
return &view&;
在返回的view.jsp中,就可以根据key来获取user的&#20540;(通过EL表达式,${user
Controller中方法的返回&#20540;:
void:多数用于使用PrintWriter输出响应数据;
String&类型:返回该String对应的View
任意类型对象:
返回ModelAndView:
自定义视图(JstlView,ExcelView):
拦截器(Inteceptors):
public class MyInteceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o)
throws Exception {
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView mav)
throws Exception {
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception excptn)
throws Exception {
拦截器需要实现HandleInterceptor接口,并实现其三个方法:
preHandle:拦截器的前端,执行控制器之前所要处理的方法,通常用于权限控制、日志,其中,Object o表示下一个拦截器;
postHandle:控制器的方法已经执行完毕,转换成视图之前的处理;
afterCompletion:视图已处理完后执行的方法,通常用于释放资源;
在MVC的配置文件中,配置拦截器与需要拦截的URL:
&mvc:interceptors&
&mvc:interceptor&
&mvc:mapping path=&/index.htm& /&
&bean class=&com.minx.crm.web.interceptor.MyInterceptor& /&
&/mvc:interceptor&
&/mvc:interceptors&
在MVC配置文件中,配置国际化属性文件:
&bean id=&messageSource&
class=&org.springframework.context.support.ResourceBundleMessageSource&
p:basename=&message&&
那么,Spring就会在项目中搜索相关的国际化属性文件,如:message.properties、message_zh_CN.properties
在VIEW中,引入Spring标签:&%@taglib uri=&&
prefix=&spring& %&,使用&spring:message code=&key& /&调用,即可;
如果一种语言,有多个语言文件,可以更改MVC配置文件为:
&bean id=&messageSource& class=&org.springframework.context.support.ResourceBundleMessageSource&&
&property name=&basenames&&
&value&message01&/value&
&value&message02&/value&
&value&message03&/value&
&/property&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:129945次
积分:2394
积分:2394
排名:第11164名
原创:82篇
转载:76篇
评论:37条
n年后的事情会是什么样子 谁知道呢 做好现在吧 每天能进步一点 你就应该满足了
(2)(6)(1)(1)(4)(7)(1)(8)(10)(5)(10)(9)(12)(13)(1)(1)(31)(6)(6)(3)(5)(13)(3)(1)SpringMVC中配置AOP拦截controller - 开源中国社区
当前访客身份:游客 [
当前位置:
小弟对spring aop不熟,现在有个项目需要记录日志,不想每个controller中去写,就想使用AOP,结果呢,配置后启动没错,但不出来
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns:mvc=&http://www.springframework.org/schema/mvc&
xmlns:aop=&http://www.springframework.org/schema/aop& xmlns:context=&http://www.springframework.org/schema/context&
xsi:schemaLocation=&
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd &&
&!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure --&
&!-- Scans within the base package of the application for @Components to
configure as beans --&
&!-- @Controller, @Service, @Configuration, etc. --&
&aop:aspectj-autoproxy proxy-target-class=&true& /&
&mvc:resources location=&/css/& mapping=&/css/**& /&
&mvc:resources location=&/img/& mapping=&/img/**& /&
&mvc:resources location=&/js/& mapping=&/js/**& /&
&mvc:resources location=&/json/& mapping=&/json/**& /&
&mvc:resources location=&/jquery-easyui-1.3.3/& mapping=&/jquery-easyui-1.3.3/**& /&
&bean id=&multipartResolver&
class=&org.springframework.monsMultipartResolver&&
&property name=&maxUploadSize& value=&& /&
&/beans& 然后呢,AOP类
package com.*.windrunner.
import org.aspectj.lang.JoinP
import org.aspectj.lang.annotation.A
import org.aspectj.lang.annotation.B
import org.aspectj.lang.annotation.P
import org.
@Component
public class ControllerLogAspect {
@Before(value = &execution(* com.*.windrunner.controller.*(..))&)
public void beforeMethod(JoinPoint point) {
System.out.println(&------test aop before&);
这个里面因为有公司项目,所以把包名用*号代替了,见谅!!现在不输,求帮忙
共有8个答案
<span class="a_vote_num" id="a_vote_num_
controller里面无法直接这样切入的。需要切入
execution(* org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(..))
因为你controller注解的类,都被这个org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter给代理了。
--- 共有 1 条评论 ---
谢谢,我想请问下,还有没有其它的配置需要做呢?谢谢
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
我的功能和你类似,是这么写的
* 异常日志处理
* @param joinPoint
* @param throwable
// 拦截语法
// AbstractAction的子类被@RequestMapping注解的方法
@Around(&within(cn.org.sysu.cems.utils.superclass.AbstractAction+) && @annotation(org.springframework.web.bind.annotation.RequestMapping)&)
public ModelAndView handleError(ProceedingJoinPoint joinPoint) { 主要是那个@annotation 如果光用execution的话可能会把你Controller本身的getter setter等非请求处理方法一并给拦截了
--- 共有 1 条评论 ---
请问我这个配置对吗?我没有配appalicationContext.xml,上面的XML是spring-servlet.xml
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
引用来自“汉唐”的答案 controller里面无法直接这样切入的。需要切入
execution(* org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(..))
因为你controller注解的类,都被这个org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter给代理了。 不需要了。现在还是无效?
--- 共有 4 条评论 ---
: 你看我的1楼回答,配置个AOP代理就可以了
(2年前)&nbsp&
: 你好,请问是怎么解决的呢?我也遇到这个问题了。 springmvc里面使用aop不起作用。。
(2年前)&nbsp&
。。。对不起,已经好了,我把两个项目搞混 了,配置的包错了,非常感谢!
(3年前)&nbsp&
还是无效,这评论不太会用,麻烦您看下下面我自己的评论
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
引用来自“汉唐”的答案引用来自“汉唐”的答案 controller里面无法直接这样切入的。需要切入
execution(* org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(..))
因为你controller注解的类,都被这个org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter给代理了。 不需要了。现在还是无效?不用客气& ,好了就好。&
<span class="a_vote_num" id="a_vote_num_
最好不要这么处理日志,你想记录什么日志?访问日志吗?
--- 共有 2 条评论 ---
管理员的操作日志没有必要使用aop 使用过滤器和拦截器就可以了,具体参见的日志管理
(3年前)&nbsp&
管理员操作日志,不想在每个类里面写
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
&问题解决了。 目测大部分同学的aop失效都是因为在springmvc的配置文件里面扫描了类,那么spring去扫描的时候发现内存中已经有了对象,就不会在对类进行aop增强。所以当我们确定在那一层切入的时候,那么在springmvc的配置文件中,应该要排除欲切入的层。
&!-- 扫描的时候过滤掉Service层,aop要在service进行切入!
&context:component-scan base-package=&audit&&
&context:exclude-filter type=&annotation& expression=&org.springframework.stereotype.Service&/&
&/context:component-scan& 在spring里面扫描service 层
&context:component-scan base-package=&com.**.service& /&
OK.问题完美解决。 一个小问题纠结了好久。
<span class="a_vote_num" id="a_vote_num_
怎么解决的?
更多开发者职位上
有什么技术问题吗?
tianpen...的其它问题
类似的话题spring(21)
一、SpringMVC核心接口
&&&&&5、ViewResolver接口--视图解析接口
继承体系:
&&&&&5、View接口--视图接口
&&二、SpringMVC项目示例
&&(1)建立动态web工程,导入spring的jar包(不要忘加SpringMVC.jar)。
&&(2)配置DispatcherServlet
&&&&DispatcherServlet是SpringMVC的核心,将下面Servlet的注册信息登记在web.xml中。一定要记住:Servlet跟伴侣一样,要结婚,先得注册登记!
&&servlet-name&test&/servlet-name&&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&&&&init-param&&
&&&&&&&&&param-name&contextConfigLocation&/param-name&&
&&&&&&&&&param-value&classpath*:/springMVC.xml&/param-value&&
&&&/init-param&&
&&&&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&&&servlet-name&test&/servlet-name&
&&&url-pattern&*.do&/url-pattern&
&/servlet-mapping&
&红题字指明了配置文件的文件名,不使用默认配置文件名,而使用springMVC.xml配置文件。
&其中&param-value&**.xml&/param-value& 这里可以使用多种写法
1、红题字不写,使用默认&#20540;:/WEB-INF/&servlet-name&-servlet.xml
2、&param-value&/WEB-INF/classes/springMVC.xml&/param-value&
3、&param-value&classpath*:springMVC-mvc.xml&/param-value&
4、多个&#20540;用逗号分隔
5、在全局定义中加载配置文件
&&&context-param&
&&&&&&&&&param-name&contextConfigLocation&/param-name&
&&&&&&&&&param-value&/WEB-INF/applicationContext.xml,classpath*:springMVC-mvc.xml&/param-value&
&&/context-param&
&其中:&context-param&和&servlet&是同一级的元素,并不是父子元素关系
(3)编写Controller,做核心配置文件,并配置url和Controller的映射
package com.wepull.
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.web.servlet.ModelAndV
import org.springframework.web.servlet.mvc.C
public class HelloController&implements Controller{
&&&&public ModelAndView handleRequest(HttpServletRequest request,
&&&&&&&&&&&&&&HttpServletResponse response) throws Exception {
&&&&&&&&&&&&&request.setAttribute(&hello&, &welcome to spring!&);
&&&&&&&&&&&&&return new ModelAndView(&welcome&);
&&&&&&&&&&&&}
我们知道Struts有个XML&#26684;式的核心配置文件,springMVC当然也有,在WEB-INF下新建一XML文件:test-servlet.xml.注意,这里的test取决于servlet的名字.当DispatcherServlet载入后,它将试图从这个文件中载入应用上下文。
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN//EN& &http://www.springframework.org/dtd/spring-beans.dtd&&
&&&&&!--缺省映射处理器,不需要明确声明,但声明后就非常清楚使用的是哪个映射处理器&&--&&&
&bean id=&beanNameUrlMapping&
class=&org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping&&
&&&&&!-- 这里的name属性有两个职责,既定义Bean的名字,也定义需要这个控制器处理的URL样式 --&
&&&&&bean name=&/hello.do&
&&&&&class=&com.wepull.test.HelloController&&
&&&&&/bean&
上面可能有人奇怪,为什么不用id属性,而设置name属性。这里是因为URL中含有XML id属性非法字符——特别是斜杠(/);
(4)配置一个视图解析器将控制器与JSP结合起来。
将解析器的配置片段加到上面的test-servlet.xml中。
&bean id=&viewResolver&
class=&org.springframework.web.servlet.view.InternalResourceViewResolver&&
&&&&&&&&property name=&prefix& value=&/WEB-INF/jsp/& /&
&&&&&&&property name=&suffix& value=&.jsp& /&
InternalResourceViewResolver在ModelAndView返回的视图名前加上prefix属性配置的前缀,再在最后加上suffix属性配置的后缀。由于HelloController返回的ModelAndView中视图名为welcome,所以InternalResourceViewResolver将在/WEB-INF/jsp/welcome.jsp处查找视图。
(5)编写呈现给用户的jsp文件。
/WEB-INF/jsp/welcome.jsp
&%@ page contentType=&text/ charset=UTF-8&%&
&%@ page isELIgnored=&false& %&
&%@ taglib prefix=&c& uri=&/jsp/jstl/core&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml&&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
&title&Hello World!&/title&
&&&&h2&${hello}&/h2&
&&完成后启动服务器,在浏览器地址栏上输入http://locahost:8080/projectName/hello.do&&&&&&&就可以访问了。
&&&对照一下,我们发现SpringMVC跟Struts大同小异。只是有两处映射,SpringMVC做的相对灵活。哪两处呢?
(1) url和动作(后端控制器)的映射。
springMVC里有个映射处理器(HandlerMapping)的概念。它实际上是一个处理器映射Bean,用来将一个控制器指定到一个URL上。Spring提供了三种有用的HandlerMapping的实现:
—— BeanNameUrlHandlerMapping
&&&&&&&根据控制器的名字将控制器映射到URL
—— SimpleUrlHandlerMapping
&&&&&&&用上下文配置文件中定义的属性集合将控制器映射到URL
—— CommonsPathMapHandlerMapping
&&&&&&&使用控制器代码中的元数据将控制器映射到URL&
(2) 逻辑视图名和视图对象的映射。
springMVC里还有个视图解析器(ViewResolver)的概念。它决定了ModelAndView对象的逻辑视图名如何解析成一个用于将结果渲染给用户的视图Bean..Spring有四种ViewResolver实现:
—— InternalResourceViewResolver
&&&&&&&将逻辑视图名解析成一个用模板文件(如JSP和Velocity模板)渲染的视图对象
—— BeanNameViewResolver
&&&&&&&将逻辑视图名解析成一个DispatcherServlet应用上下文中的视图Bean
—— ResourceBundleViewResolver
&&&&&&&将逻辑视图名解析成一个ResourceBundler中的视图对象
—— XmlViewResolver
&&&&&&&从一个XML文件中解析视图Bean,这个文件是从DispatcherServlet应用上下文中分离出来的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:322926次
积分:3896
积分:3896
排名:第5681名
原创:54篇
转载:177篇
评论:31条
(6)(16)(3)(2)(5)(21)(6)(3)(6)(33)(1)(24)(24)(1)(1)(1)(1)(28)(2)(1)(6)(1)(1)(2)(16)(1)(1)(1)(1)(4)(5)(5)(1)(1)(1)(2)}

我要回帖

更多关于 ap和controller配置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信