`
Puras
  • 浏览: 109857 次
  • 性别: Icon_minigender_1
  • 来自: 哪
社区版块
存档分类
最新评论

在Struts2中使用Groovy来编写Action

阅读更多
原文地址:http://www.blogjava.net/puras/archive/2007/09/03/142221.html

今天在查关于Struts2和Ajax方面的资料的时候,发现一个在Struts2中使用Groovy编写Action的插件.因为本身就对Groovy比较感兴趣,但因为最近的工作,没有多少时间来研究,看到这个插件,哈,正好可以在这段时间的应用中使用到,这样就可以在工作中应用Groovy啦.

这个插件是:s2ss(Struts 2 Scripting Support), 地址:http://code.google.com/p/s2ss/

下载地址:http://s2ss.googlecode.com/files/struts2-groovy-plugin-0.2.jar

将这个Jar包放到WEB-INF/lib下,之后修改struts.properties,添加一行:

struts.objectFactory=groovyObjectFactory

也可以修改struts.xml,添加下面一行:
<constant name="struts.objectFactory" value="groovyObjectFactory" />

个人习惯使用后面一种.

再将Groovy的包放到WEB-INF/lib下,我用的是groovy-all-1.0.jar.

这个插件所依赖的包有:

    Struts 2.0.x (struts2-api-2.0.x.jar, struts2-core-2.0.x.jar)
    Groovy 1.0 (groovy-all-1.0.jar)
    XWork 2.x (xwork-2.0.x.jar)
    Commons Loggings 1.0 (commons-logging-1.0.4.jar)

在struts.xml中配置Action,与正常的配置差不多,只不过class里用的是Groovy的类,而且需要加上Groovy的扩展名,如下:
<action name="groovy" class="com.puras.groovy.TestAction.groovy">    
    <result>/WEB-INF/pages/groovy/test_action.jsp</result>
</action> 

拦截器与Action相似,
..
<interceptor name="groovyInterceptor" class="com.puras.groovy.Interceptor.groovy" />
..
<interceptor-ref name="groovyInterceptor" /> 
[/code[
这里就只演示Action的了.呵

下面来编写TestAction.groovy:
package com.puras.groovy; 

class TestAction { 

  def message;
  def execute() {
      message = "Hello world"
      return "success"
  }
  def getMessage() {
      return message
  }
} 

不用进行编译,直接将.groovy文件复制到WEB-INF/classes/com/puras/groovy/下就可以了.

类之间的调用等,与使用Java相同.

最后再编写一下用于显示的test_action.jsp就OK啦.代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<s:property value="message"/>
<br />
<hr />
</body>
</html> 

现在,启动你的WEB服务器,之后打开浏览器,输入地址:http://localhost:8080/your_webapp/groovy.action,就可以看到效果了.

下一步目标:

加入Spring
加入Ajax
分享到:
评论
7 楼 kyo100900 2007-10-15  
Puras 写道
我觉得
1.使用Groovy,可以让代码更加简洁,如上例中的
# def getMessage() { 
#       return message 
#   }
是这可以省略的
2.响应速度更快
如果使用Java,改完之后会等WEB容器重新编译
而使用Groovy就不需要了,直接刷新页面就可以看到修改的结果了


我感觉第二点更诱人,Java布署一个项目,如果机器差的话,真的可以喝咖啡了。。。。。。。。。。
6 楼 Puras 2007-09-04  
我觉得
1.使用Groovy,可以让代码更加简洁,如上例中的
# def getMessage() { 
#       return message 
#   }
是这可以省略的
2.响应速度更快
如果使用Java,改完之后会等WEB容器重新编译
而使用Groovy就不需要了,直接刷新页面就可以看到修改的结果了
5 楼 Fly_m 2007-09-03  
学习ing.
最近也在研究怎么在项目中运用groovy和grails,还不太习惯~
也对struts2感兴趣,不过为什么grails中的web层是spring mvc?
4 楼 山风小子 2007-09-03  
不要光看到自己所失去的,想想自己所获得的吧~
3 楼 agile_boy 2007-09-03  
支持博主,大家把Groovy应用的越来越丰富多彩了啊!
至于大家关注的性能问题,应该不是大问题啊,众人拾材火焰高嘛  ,还有选择工具其实也是一个平衡过程
2 楼 ray_linn 2007-09-03  
groovy运行效率是个问号,一般都是用来写Test Case的。
1 楼 williamy 2007-09-03  
Groovy偶也有所研究,本来想在偶得框架里引进这个技术,不过最终老子放弃了它,其实Groovy还是运行前还是要编译的,并且编译出来的class文件实在有够烂,我认为groovy有3个用途,1 写testCase  2,写code  gen。。  3,作为粘合剂代替xml,(这个我没有想到怎么用,估计可以,不过偶都是用annotation来代替xml的)

相关推荐

    Groovy学习笔记 Struts2集成--Groovy类作为Action

    首先,我们需要理解在Struts2中,Action是业务逻辑的核心组件,负责处理用户请求并返回相应的结果。通常,Action类是Java编写的,但通过Struts2的插件机制,我们可以使用Groovy来创建Action,这为我们的开发工作带来...

    Struts2集成jasperreport3.7.1所需的Jar包

    在Struts2中集成JasperReport,可以方便地在Web应用中添加报告功能。 在Struts2中集成JasperReport 3.7.1,你需要一些关键的库文件,这些文件已经在你提供的压缩包中。以下是每个文件及其在集成过程中的作用: 1. ...

    struts 中所需要的包

    6. **struts-scripting**: 支持使用Groovy、JavaScript等脚本语言编写Action。这为开发者提供了更多的选择,可以根据项目需求选择最适合的语言来编写业务逻辑。 7. **struts-json**: 提供了对JSON(JavaScript ...

    Struts2常用标签

    本篇文章主要关注Struts2中的常用标签,这些标签大大简化了Web开发中的一些常见任务。 首先,我们要明白Struts2标签库与Struts1.x的不同之处。在Struts1.x中,标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...

    struts的九个必备常用包

    9. **struts-scripting**:支持脚本语言(如Groovy、JavaScript)的标签库,使得开发者可以在JSP页面中直接编写脚本,增强页面交互和动态功能。 了解并熟练掌握这些核心包的使用,对于开发高效、可维护的Struts应用...

    Struts 2中的OGNL教程

    #### 四、OGNL 在 Struts 2 中的使用 OGNL 通常与 Struts 2 的标签库一起使用,例如 `&lt;s:property value="xx"/&gt;`。在使用 OGNL 时,需要注意几个符号的使用: - **#**:表示 OGNL 表达式的开始。 - **%**:用于...

    struts开发需要的包

    8. **Struts Scripting**: `struts-scripting-1.3.5.jar` 支持在Struts应用中使用脚本语言,比如Groovy或JavaScript,来编写Action或者页面逻辑,提供了更灵活的开发方式。 综上所述,这些jar包构成了一个完整的...

    struts-scripting-1.0.1

    Struts Scripting扩展了这一概念,使得开发者可以直接在Action中使用脚本语言编写业务逻辑,而无需创建Java类。这简化了开发流程,特别是对于快速原型或者对脚本语言熟悉的人来说,能够更快地实现功能。 1. **脚本...

    struts_demo(logon)

    在Struts应用中,Groovy可以用来编写Action或者扩展Struts的功能。 至于"PPT",这可能是指项目的演示文稿,其中详细介绍了该示例的实现步骤、设计决策和使用的技术。这份文稿可以帮助理解整个项目的架构和工作流程...

    struts-scripting-1.0.1-src

    在Struts-scripting模块中,主要的目标是让开发者能够使用诸如JavaScript、Groovy或其他支持的脚本语言来编写Action和Validator,而不是传统的Java类。这一特性使得开发过程更为灵活,因为脚本语言通常提供更简洁的...

    SSH(Struts2,Spring,Hibernate)框架gradle项目源码

    SSH框架是Java开发中常用的三大框架,分别是Struts2、Spring和Hibernate,它们协同工作,构建出高效、灵活的企业级应用程序。在这个名为"mySSH"的Gradle项目源码中,我们可以深入理解这三个框架的集成与应用。 ...

    struts2.3.14+spring3.1.1+hibernate4.1.0 jar包

    在使用这个压缩包时,你需要将这些jar包添加到项目的类路径中,然后按照SSH的集成指南配置相应的XML配置文件,如struts.xml、spring-servlet.xml和hibernate.cfg.xml。在struts.xml中定义Action和结果,spring-...

    Struts2.2+Spring3JAR包

    为了有效地使用这个压缩包,开发者需要了解如何配置Struts2和Spring的配置文件(如struts.xml和applicationContext.xml),以及如何编写Action类并声明它们在Spring容器中的bean。此外,还需要理解如何通过Struts2的...

    struts2+hibernate3+spring2.5框架jar

    Struts2、Hibernate3和Spring2.5是Java开发中非常经典的三大开源框架,它们各自在Web层、持久层和应用层提供了强大的功能,并且通过整合可以构建出高效、灵活的企业级应用程序。以下是对这三个框架及其整合的详细...

    使用Gradle 构建Struts2、Springframework和hibernate 框架的Java EE 项目模板.zip

    在实际开发中,你可能需要配置Gradle构建脚本以引入这三个框架的依赖,设置Struts2的配置文件(struts.xml)以定义Action和结果,编写Spring的配置文件(如applicationContext.xml)以声明bean,以及使用Hibernate的...

    struts2.3.2+hibernate4.3.8+spring4.1.5整合jar包

    在配置上,通常需要在Spring的配置文件中声明Struts2的Action类,定义数据源和SessionFactory,然后在Struts2的配置文件中指定Action的执行逻辑。 整合SSH时,首先需要在项目中导入这三个框架的jar包,然后按照特定...

    Struts.2权威指南--基于WebWork核心的MVC开发.0007.pdf

    相比于Struts 1.x,Struts.2具有更强大的功能和更高的灵活性,它支持多种语言(如Java、Groovy、Scala等),并且通过使用拦截器(Interceptor)机制,提供了更丰富的功能扩展性。此外,Struts.2还内置了对AJAX的支持...

    Struts2.3.4.1+Hibernate4.1.7+Spring3.1.2

    6. 编写Action:定义Struts2的Action类,处理用户请求,通过Spring获取DAO,调用DAO执行数据库操作。 这个SSH框架组合使得开发者能够快速地开发出稳定、高效的企业级应用,同时也为项目扩展和维护提供了便利。在...

    groovyexample

    2. **Struts2 的 Action 和 Result**:在 Groovy 中实现 Struts2 的 Action 类,处理 HTTP 请求,执行业务逻辑,并通过 Result 定义视图跳转。 3. **Struts2 拦截器**:Groovy 可以创建自定义拦截器,增强应用的...

    Struts2.2.3 Spring3.1 ibatis2.0 jar包

    4. 在Action类中使用Spring托管的Service,Service中通过iBatis的SqlSession执行SQL操作。 这个压缩包提供的"lib"目录包含了所有必需的jar文件,包括Struts2、Spring和iBatis的核心库以及它们的依赖,开发者可以...

Global site tag (gtag.js) - Google Analytics