`
ivorytower
  • 浏览: 72772 次
  • 性别: 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-开源框架使用指南

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

    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 教程

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

    Grails开源框架 - 使用指南

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

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

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

    java中的Grails开源框架 - 使用指南(chm)

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

    Spring Boot实战 ,丁雪丰 (译者) 中文版

    第6章 在Spring Boot中使用Grails 93 6.1 使用GORM进行数据持久化 93 6.2 使用Groovy Server Pages定义视图 98 6.3 结合Spring Boot与Grails 3 100 6.3.1 创建新的Grails项目 100 6.3.2 定义领域...

    spring boot实战.pdf高清无水印

    第6章 在Spring Boot中使用Grails 93 6.1 使用GORM进行数据持久化 93 6.2 使用Groovy Server Pages定义视图 98 6.3 结合Spring Boot与Grails 3 100 6.3.1 创建新的Grails项目 100 6.3.2 定义领域模型 ...

    grails-docs-2.0.3.zip

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

    Spring攻略(第二版 中文高清版).part1

    6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...

    Spring攻略(第二版 中文高清版).part2

    6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...

    Grails实战教程-整合版

    一个基于Spring MVC的控制器层 一个基于Gradle的交互式命令行环境 一个内嵌的且已配置为热部署的Tomcat服务器 Spring的依赖注入技术 使用Spring的MessageSource实现国际化(i18n) 一个基于Spring事务抽象的事务层 ...

    springBoot实战4.0 高清版

    第 6 章 在 Spring Boot 中使用 Grails ...... 93 6.1 使用 GORM 进行数据持久化 ................. 93 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................. 100...

    String Boot实战

    6 章 在 Spring Boot 中使用 Grails ......936.1 使用 GORM 进行数据持久化 .................932 目 录6.2 使用 Groovy Server Pages 定义视图 .......986.3 结合 Spring Boot 与 Grails 3 .................1006.3...

    SpringBoot实战(第4版)

    第 6 章 在 Spring Boot 中使用 Grails ...... 93 6.1 使用 GORM 进行数据持久化 ................. 93 2 目 录 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................

Global site tag (gtag.js) - Google Analytics