`
leeqoo
  • 浏览: 123908 次
社区版块
存档分类
最新评论

springMVC 注解

 
阅读更多
转自: http://blog.csdn.net/shuimumu/article/details/7641774

shuimumu的专栏

   




mvc:view-controller
这个标签是为了简化ParameterizableViewController映射到视图的配置,当响应视图是不需要执行控制器逻辑时使用,一个跳转到主页的配置例子<mvc:view-controller path="/" view-name="home"/>(问题:在web的根目录有一个index.html文件,删掉了就可以了


springMVC中配置多个视图

web.xml

[html] view plaincopy

    <servlet>    
        <servlet-name>jstl</servlet-name>  
        <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>  
        <init-param>              
        <param-name>contextConfigLocation</param-name>              
        <param-value>/WEB-INF/config/jstl-servlet-admin.xml</param-value>          
        </init-param>   
        <load-on-startup>1</load-on-startup></servlet>  
    <servlet>    
        <servlet-name>fm</servlet-name>   
        <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>   
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>   
        <servlet-name>jstl</servlet-name>   
        <url-pattern>/*.jstl</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>   
        <servlet-name>fm</servlet-name>   
        <url-pattern>/*.fm</url-pattern>  
    </servlet-mapping>  

如果忽略contextConfigLocation此设定,则默认为“/WEB-INF/<servlet name>-servlet.xml”,其中<servlet name>以Servlet 名替换

<context:component-scan/> 扫描指定的包中的类上的注解,常用的注解有:
@Controller 声明Action组件
@Service    声明Service组件    @Service("myMovieLister") 
@Repository 声明Dao组件
@Component   泛指组件, 当不好归类时. 
@RequestMapping("/menu")  请求映射
@Resource  用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") 
@Autowired 用于注入,(srping提供的) 默认按类型装配 
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype")   设定bean的作用域

testServiceImpl extends HiberanteDaoSupport
注入sessionFactory
    @Autowired  
    public void setSessionFactoryOverride(SessionFactory sessionFactory) 
    {   
      super.setSessionFactory(sessionFactory);   
    }  

数据绑定结果和验证
数据绑定也许会导致类似于类型转换或域缺失的错误。不管发生什么错误,我们都希望能返回到编辑的表单,让用户自行更正。
要想实现这个目的,我们可直接在方法签名的表单模型对象后面追加一个BindingResult对象,发生错误时我们返回到出现问题的视图,并把从BindingResult得到的属性增加到模型上,这样特定域的错误就能够反馈给用户.

@ModelAttribute注解
<form:form modelAttribute="account" method="post">
即使我们没有在任何地方指定“account”的名称,这段JSP程序也会和上面所讲的方法签名协作的很好。这是因为@MVC用返回对象的类型名称作为默认值,因此一个Account类型的对象默认的就对应一个名为“account”的表单模型对象。如果默认的不合适,我们就可以用 @ModelAttribute来改变它的名称,

[java] view plaincopy

    @ModelAttribute("items")//<——①向模型对象中添加一个名为items的属性    
        public List<String> populateItems() {    
                List<String> lists = new ArrayList<String>();    
                lists.add("item1");    
                lists.add("item2");    
                return lists;    
        }    
        @RequestMapping(value = "test")    
        public String listAllBoard( ModelMap model) {    
                //<——②在此访问模型中的items属性    
                System.out.println("model.items:" + ((List<String>)model.get("items")).size());    
                return "listBoard";    
        }    

在 ① 处,通过使用 @ModelAttribute 注解,populateItem() 方法将在任何请求处理方法执行前调用,Spring MVC 会将该方法返回值以“items”为名放入到隐含的模型对象属性列表中。 
所以在 ② 处,我们就可以通过 ModelMap 入参访问到 items 属性,当执行 listAllBoard() 请求处理方法时,② 处将在控制台打印出“model.items:2”的信息。当然我们也可以在请求的视图中访问到模型对象中的 items 属性。

@ResponseBody的注解,Spring3.0 MVC @ResponseBody的作用是把返回值直接写到HTTP response body里。可以用于ajax。

@RequestParam注解用于在控制器中绑定请求参数到方法参数.使用这个注解参数默认是必需的, 但是可以把@RequestParam的required属性设置为false从而让这个参数可选.例如@RequestParam(value="name", required="false")

@PathVariable
@RequestMapping(value = "show/{id}")
public String show(@PathVariable long id, Model model)

@RequestMapping
有一点需要注意的,如果为类定义了访问地址为*.do,*.html之类的,则在方法级的@RequestMapping,不能再定义value值,否则会报错,例如 

[java] view plaincopy

    @RequestMapping("/bbs.do")    
    public class BbsController {    
        @RequestMapping(params = "method=getList")    
        public String getList() {    
         return "list";    
        }    
    @RequestMapping(value= "/spList")    
    public String getSpecialList() {    
         return "splist";    
        }    
    }    

如上例:/bbs.do?method=getList 可以访问到方法getList() ;而访问/bbs.do/spList则会报错. 

@SessionAttributes session管理 
Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来实现的。@SessionAttributes 只能声明在类上,而不能声明在方法上。 
例如 
@SessionAttributes("currUser") // 将ModelMap 中属性名为currUser 的属性 
@SessionAttributes({"attr1","attr2"}) 
@SessionAttributes(types = User.class) 
@SessionAttributes(types = {User.class,Dept.class}) 
@SessionAttributes(types = {User.class,Dept.class},value={"attr1","attr2"}) 
@CookieValue 获取cookie信息 
@RequestHeader 获取请求的头部信息

分享到:
评论

相关推荐

    springmvc注解简单实例

    在这个"springmvc注解简单实例"中,我们将深入探讨Spring MVC中的一些关键注解,以及它们在DAO层、Service层和Controller层中的应用。让我们逐一解析这些层面的注解使用。 首先,我们来到**DAO层**。在Spring MVC中...

    springMVC 注解模式 完整事例 小例子

    springMVC 注解模式 完整事例 小例子 完整的小例子 放在eclipse或者myeclipse就直接可以运行的 包含简单的增删改查 上传文件 导出excle等小功能 登录验证等 简单实用 初学者首选

    SpringMVC注解驱动的控制器详解

    SpringMVC注解驱动的控制器详解,具体效果与过程看博文 http://blog.csdn.net/evankaka/article/details/45562951

    SPRINGMVC 注解范例程序

    在"SPRINGMVC 注解范例程序"中,我们可以深入理解 Spring MVC 如何利用注解进行配置简化,提高开发效率。下面将详细介绍 Spring MVC 中的关键注解和其工作原理。 1. **@Controller**:这是 Spring MVC 中的核心注解...

    SpringMVC注解开发的详解.doc

    SpringMVC注解开发是Java Web开发中一种高效的方式,它极大地简化了控制器的定义和请求处理。在SpringMVC框架中,`@Controller`注解用于标识一个类作为处理HTTP请求的控制器。这个注解使得类中的方法可以被SpringMVC...

    03springmvc注解驱动开发的servlet3.0初始化配置类.avi

    03springmvc注解驱动开发的servlet3.0初始化配置类.avi

    JavaEE SpringMVC注解框架例子.rar

    【JavaEE SpringMVC注解框架例子】 SpringMVC是JavaEE开发中广泛使用的轻量级Web MVC框架,它提供了一种模型-视图-控制器(MVC)的设计模式,帮助开发者有效地组织和处理Web应用的请求和响应。在这个例子中,我们将...

    springmvc 注解

    springmvc 注解

    SpringMvc注解详解

    【SpringMvc注解详解】 SpringMvc 是 Spring 框架的一部分,主要负责处理 Web 请求。在 SpringMVC 中,注解扮演着至关重要的角色,它们简化了代码并减少了配置。以下是一些常用的 SpringMVC 注解及其详细解释: 1....

    springMVC注解

    SpringMVC注解的使用,大大减少了XML配置,提高了代码的可读性和可维护性。 首先,SpringMVC的运行离不开Spring的核心组件。`org.springframework.asm-3.0.3.RELEASE.jar`提供了对Java字节码操作的支持,用于Spring...

    SpringMVC注解整合Mybatis和ExtJs5.0

    在本项目中,我们主要探讨的是如何利用SpringMVC注解和Mybatis框架来构建一个与ExtJS 5.0前端交互的后台管理框架。这是一个常见的企业级应用开发模式,旨在提供高效、灵活且易于维护的系统。让我们逐一分析这个项目...

    BlazeDS+Spring+SpringMVC 注解方式配置文件

    在"BlazeDS+Spring+SpringMVC 注解方式配置文件"的场景下,我们将关注如何使用注解来简化这三者之间的整合。注解是Java中的一种元数据,可以为编译器或运行时环境提供信息,简化代码并减少XML配置。 首先,...

    02springmvc注解驱动开发的环境准备.avi

    02springmvc注解驱动开发的环境准备.avi

    springmvc常用注解标签详解

    SpringMVC 中常用的注解标签详解 在 SpringMVC 框架中,注解标签扮演着非常重要的角色,它们使得开发者可以轻松地定义控制器、请求映射、依赖注入等内容。在本文中,我们将详细地解释 SpringMVC 中常用的注解标签,...

    springMVC 注解版

    **SpringMVC注解版详解** SpringMVC是Spring框架的一部分,主要负责处理Web应用程序的请求和响应。在SpringMVC中,注解的使用极大地简化了开发过程,减少了XML配置,使得代码更加简洁易懂。这篇内容将深入探讨...

    SpringMVC注解工程(eclipse-jee-2020-12-R)

    SpringMVC注解工程(eclipse-jee-2020-12-R)

    springMVC注解实现

    在这个“springMVC注解实现”的资源中,我们可以深入理解如何使用注解简化SpringMVC的配置和开发流程。 1. **@Controller**: 这是SpringMVC中的核心注解,用于标记一个类作为处理HTTP请求的控制器。例如: ```java...

    SpringMVC注解例子

    ### SpringMVC注解配置详解 #### 一、SpringMVC简介 SpringMVC是Spring框架的一个模块,它提供了一种清晰的模型-视图-控制器(MVC)设计模式实现,帮助开发人员创建灵活且松散耦合的Web应用程序。与Struts等其他MVC...

    会议管理系统SSH框架,springmvc注解

    会议管理系统SSH框架,springmvc注解。为了进一步规范公司会议管理,做好上情下达和下情上报工作,实现公司信息资源在各部门之间快速有效传递,同时为了进一步规范会议室的使用/预定管理,会议发布,人员管理。公司...

    springMVC 注解入门例子

    在这个入门例子中,我们将探讨如何使用SpringMVC的注解来实现用户信息的保存和文件上传功能。 首先,让我们了解SpringMVC的核心组件: 1. **DispatcherServlet**:它是SpringMVC的前端控制器,负责接收HTTP请求,...

Global site tag (gtag.js) - Google Analytics