`
ivorytower
  • 浏览: 74011 次
  • 性别: Icon_minigender_1
  • 来自: 成都-->@深圳
社区版块
存档分类
最新评论

【翻译】在Grails中使用Spring MVC 控制器

阅读更多
    Groovy是慢于java,有时是戏剧性的慢。实际上,这已影响不大,对一个web应用来说,响应时间是较容易受数据库和网络等待时间的影响,相比较这种慢来说有点太过戏剧性,但是Groovy和Grails的优点已远远超过了这些忧虑。并且Grails依然快于Rails。
     但话说回来,我不知道如何使用一个常用的Java Spring MVC控制器和JSP,而非一个Grails控制器和GSP(均采用Groovy) 。原来,这实在是太容易:
     1、注册传统的Spring调度的Servlet在web.xml中(你需要有运行Grails安装模板(install-templates))。在这个例子中,name属性( springmvc )不是重要的,使用任何你想要做的,我选择了映射*.action的URL ,以这种控制器,让grails处理:
<servlet>
   <servlet-name>SpringMVC</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>SpringMVC</servlet-name>
   <url-pattern>*.action</url-pattern>
</servlet-mapping>


   2、产生web-app/web-inf/springmvc-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:p='http://www.springframework.org/schema/p'
   xmlns:lang='http://www.springframework.org/schema/lang'
   xsi:schemaLocation='
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
      http://www.springframework.org/schema/lang
      http://www.springframework.org/schema/lang/spring-lang-2.5.xsd'>

   <bean id='mvcHandlerMapping'
      class='org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping'
      p:order='1'>
      <property name='interceptors'>
         <list>
            <ref bean='openSessionInViewInterceptor' />
            <ref bean='localeChangeInterceptor' />
         </list>
      </property>
   </bean>

   <bean id='mvcViewResolver'
      class='org.springframework.web.servlet.view.UrlBasedViewResolver'
      p:viewClass='org.springframework.web.servlet.view.InternalResourceView'
      p:order='1'
      p:prefix='/WEB-INF/jsp/'
      p:suffix='.jsp'
   />

   <bean name='baseSimpleController' abstract='true' p:cacheSeconds='0'/>

   <bean name='jspController'
      class='com.foo.spring.controller.JspController'
      parent='baseSimpleController'
      abstract='true'
   />

   <!-- actions -->

   <bean name='/test.action'
      class='com.foo.spring.controller.TestController'
      parent='baseSimpleController'
      p:successView='test'
   />

   <bean name='/other.action' parent='jspController' p:successView='other' />

</beans>


就是这样。一些注释:
1、处理程序映射使用的ID mvcHandlerMapping自Grails将创造一个使用标准名称handlerMapping
2、由于处理器映射在默认情况下是自动寻找到的,您需要设置该命令属性的东西低于Grails映射的(即使用默认值Integer.MAX_VALUE) ,使这个映射是第一次访问;
3、该HandlerInterceptors配置为Grails映射(OpenSessionInView, LocaleChange)将不会被自动提供给这个映射,但它是简单借用他们,因为他们正在登记为beans,你也可以添加其他定制拦截器在该份名单;
4、我已经创造了一个可选的抽象父控制器 bean (baseSimpleController)为简单的控制器(单页,即不是表单或精灵(wizard)控制器);
5、我还创造了一个简单的控制器,只显示JSP的-这是非常有用没有任何控制器的逻辑的页面:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class JspController extends AbstractController {

   private String _successView;

   @Override
   protected ModelAndView handleRequestInternal(
         final HttpServletRequest request,
         final HttpServletResponse response) {

      return new ModelAndView(_successView);
   }

   public void setSuccessView(final String view) {
      _successView = view;
   }
}


   我已经制定了两个样品的URL - /test.action,即用一个控制器和/other.action,即用JspController只显示other.jsp
    注意,使用带有Grails的JSP是可能的; Grails期待一个GSP的指定名称,但如果找不到,他也会去找一个JSP的(在/ WEB-INF/grails-app/views /下 ) 使用如果存在的话。所以另一种选择是使用grails控制器和JSP 。
    但我却没有用在开发中,我只是想,尽管如此,我还会全力以赴,在今后的开发中可是以防万一。
4
1
分享到:
评论
1 楼 freedear_007 2008-04-15  
[url][/url][img][/img]
引用
[u][/u][i][/i][b][/b]

相关推荐

    grails中文使用手册

    Grails是一种基于Groovy语言的开源Web应用框架,它结合了模型-视图-控制器(MVC)架构模式,旨在提高开发效率,降低复杂性。这份中文文档将带你深入理解Grails的核心特性,包括它的配置、插件、数据库集成、服务层、...

    使用GORM构建Spring Boot应用程序 Grails指南_ Grails框架.pdf

    在Spring MVC中,控制器负责接收请求,调用服务层,并将结果返回给客户端: ```java @RestController @RequestMapping("/users") class UserController { private final UserService userService UserController...

    grails中文API

    在Grails框架中,Groovy用于编写控制器、服务、领域类等组件。 3. **领域模型(Domain Model)** 在Grails中,领域模型是应用程序的核心,它代表了业务数据和逻辑。通过定义Groovy类并使用Grails的GORM(Grails ...

    grails中文入门简介

    它还包含了Groovy Server Pages(GSP),这是一种基于Groovy的模板引擎,它允许开发者在页面中使用Groovy脚本。GSP标签库丰富,涵盖了数据绑定、表单处理、页面布局等多个方面。Grails的URL映射系统使得可以灵活地将...

    Grails Grails Grails

    《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...

    GRails 中文帮助文档(参考手册)和安装开发介绍帮助

    基于Spring MVC的控制器层 构建于Gant 上的命令行脚本运行环境 内置Jetty服务器,不用重新启动服务器就可以进行重新加载 利用内置的Spring 容器实现依赖注入 基于Spring的MessageSource核心概念,提供了对国际化...

    Grails权威指南

    第1章 寻找grails之旅  1.1 java的困惑  1.2 webc2.0时代  1.3 java的力量 ... 11.4 在grails中使用spring控制器  11.5 在grails中使用acegi  11.6 使用xfire创建soap服务  11.7 本章小结

    grails中文文档

    例如,`grails create-app` 用于创建新的 Grails 应用,`grails run-app` 用于启动应用,`grails generate-controller` 可以自动生成控制器代码。这些命令大大提高了开发效率,让开发者能专注于业务逻辑而非基础架构...

    Grails入门精通及中文API

    - **GRAILS插件系统**: 允许开发者扩展框架功能,提供预定义的服务、控制器和视图,例如,Spring Security插件用于身份验证和授权。 - **自动化脚手架**: Grails提供了一套自动生成常见CRUD(创建、读取、更新、...

    Grails 教程

    基于Spring MVC的控制器层 构建于Gant 上的命令行脚本运行环境 内置Jetty服务器,不用重新启动服务器就可以进行重新加载 利用内置的Spring 容器实现依赖注入 基于Spring的MessageSource核心概念,提供了对国际化...

    Grails中文参考手册

    - **基于Spring MVC的控制器层**:利用Spring框架的功能实现灵活的控制器逻辑。 - **命令行脚本运行环境**:通过Gant提供了一个方便的命令行接口,用于自动化常见的开发任务。 - **内置Jetty服务器**:允许开发者在...

    grails 中文手册

    - Grails 提供了一套强大的命令行工具,用于快速生成应用结构、控制器、服务、域类等。 - `grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` 生成领域模型。 5. **...

    grails-用户手册

    Grails提供了一套强大的命令行工具,用于快速创建项目、生成控制器、领域类、服务等。例如,`grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` 生成领域类。 四、GORM...

    Grails开源框架 - 使用指南

    易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...

    使用Grails快速开发Web应用.rar

    易于使用的基于Hibernate的对象-关系映射(ORM)层称为Groovy Server Pages (GSP)的表现层技术基于Spring MVC的控制器层构建于Gant 上的命令行脚本运行环境内置Jetty服务器,不用重新启动服务器就可以进行重新加载利用...

    Grails1.1中文文档.rar

    同时,通过实践创建简单的Grails应用,了解控制器、服务、领域模型的创建和交互,以及插件的使用。此外,深入研究URL映射和GSP标签库,能让你更好地利用Grails构建高效、可维护的Web应用。 通过阅读《Grails1.1中文...

    grails1.3.9

    Grails遵循模型-视图-控制器(Model-View-Controller,MVC)设计模式,将应用程序的不同部分分离,提高了代码的可维护性和可重用性。Grails的Controller处理用户请求,Domain Class代表业务模型,Service提供业务...

    Grails 入门指南+示例源码

    6. **Controllers与Views**:控制器如何处理HTTP请求,生成响应,以及视图如何展示数据,理解MVC模式在Grails中的实现。 7. **Services**:服务层的创建和使用,通常用于业务逻辑处理,可以脱离特定请求上下文。 8...

Global site tag (gtag.js) - Google Analytics