`

Struts2.0实现零配置..自己学习看看

阅读更多
自从ror热潮席卷web开发界以来,惯例优于配置的快速开发理念便深入人心。

struts2中对action name支持通配符配置,所以使其方便的实现零配置成为可能。

实现零配置后的开发会是怎样,开发员不用配置struts.xml,也不用在action代码中写annotation,是真正干净的零配置。以下的代码是我们希望达到的效果。
action示例
package net.jacker.ww.sys;

public class UserAction extends BaseAction {


 
    public String execute() throws Exception {
        
         return "default"; 
         // default表示使用缺省页面,路径名和action所在包和类名相关,为 /sys/User.jsp
    }

    public String roles(){
       
        return view("/sys/UserRoles"); // 指定展示页面为 /sys/UserRoles.jsp
    }


    public String xxxx(){
      
       return redirect("/sys/User.do"); // 重定向,url为 /sys/User.do
   
    }




}

以上action的三个方法无需配置,将可以分别用以下链接进行访问:
http://localhost:8080/sys/User.do
http://localhost:8080/sys/User!roles.do
http://localhost:8080/sys/User!xxxx.do(将重定向到User.do)


下面我们来看看以上零配置是如何做到的。
首先,我们需要在struts.xml中做如下的配置。
<struts>
    <constant name="struts.enable.SlashesInActionNames" value="true" /> <!-- action名可以有'/'字符 -->
    <constant name="struts.action.extension" value="do"/> <!-- .do为访问扩展名 -->

  <package name="default" extends="struts-default">
 
  <!-- 通配符配置,匹配所有的URL对action的访问 -->
    <action name="*/*!*" class="net.jacker.ww.{1}.{2}Action" method="{3}">
      <result name="default" type="dispatcher">/{1}/{2}.jsp</result>
      <result name="view" type="dispatcher">${viewpath}.jsp</result>
      <result name="redirect" type="redirect">${viewpath}</result>
    </action>
    <action name="*/*" class="net.jacker.ww.{1}.{2}Action">
      <result name="default" type="dispatcher">/{1}/{2}.jsp</result>
      <result name="view" type="dispatcher">${viewpath}.jsp</result>
      <result name="redirect" type="redirect">${viewpath}</result>
    </action>
  </package>

</struts>


然后是写一个Action基类,BaseAction.java
package net.jacker.ww;

import com.opensymphony.xwork2.Action;


public abstract class BaseAction implements Action{

   

    String viewpath; //该属性会在struts.xml中用到

    public String view(String vpath){
        viewpath = vpath;
        return "view";
    }

    public String redirect(String vpath){
        viewpath = vpath;
        return "redirect";
    }


    public String getViewpath() {
        return viewpath;
    }

   

}

做好以上的基础工作,你的action类只要继承BaseAction,符合XxxAction的命名规则,放到对应的包下,页面也放到对应的路径,就可以无需配置而访问了。

如果要替换view层也很简单,只要对struts.xml做简单修改,比如:

<result name="default" type="dispatcher">/{1}/{2}.jsp</result>

改为

<result name="default" type="velocity">/{1}/{2}.vtl</result>

修改后的struts将统一使用velocity模板取代jsp作为页面展示层。

注意:
实测后发现,以上零配置的做法只在struts2.0.11版本中可以使用,在struts2.0.XX的更高版本中却未能获通过,这不能不说是个遗憾。
分享到:
评论

相关推荐

    struts 2.0 详细配置

    ### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...

    spring2.0+struts2.0+hibernate3.rar

    根据提供的文件信息,我们可以推断出这是一份与Spring 2.0、Struts 2.0和Hibernate 3框架相关的项目资料。虽然描述部分提到的内容较为简略且部分内容涉及SQL Server配置,但从整体上来看,我们将围绕这些技术栈进行...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    通过深入阅读这份"三大框架中文文档中的struts2.0开发手册",开发者不仅可以掌握Struts2.0的基础知识,还能学习到实际项目开发中的最佳实践,提升自己的编程技能。手册中可能还会包含实例代码、常见问题解答以及调试...

    struts2.0所有jar包

    Struts2.0是Java Web开发中非常流行的一个MVC框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,为开发者提供了强大的功能和灵活的架构。这个压缩包包含了Struts2.0框架运行所需的所有jar包,使得...

    struts2.0+spring+ibatis.doc

    首先,我们来看Struts2.0框架的配置。Struts2的核心配置文件是`struts.xml`,它定义了URL与Java类之间的映射关系。Struts2允许你创建多个配置文件,每个模块可以拥有自己的`struts-模块名.xml`,这样可以更好地管理...

    Struts2.0学习系列 包括webwork

    通过学习这个系列,你可以掌握如何创建Struts2.0的项目结构,编写Action类,配置Action和Result,使用Interceptor实现业务逻辑的增强,以及如何在JSP页面中利用Ognl表达式展示数据。此外,还将了解如何结合其他Java ...

    Struts2.0框架书籍

    通过代码实例,读者可以深入理解如何配置Struts2.0的XML配置文件,如何创建Action类,如何编写拦截器,以及如何与数据库进行交互等。此外,书中可能还涵盖了使用Struts2.0与其他技术的集成,如Spring、Hibernate等,...

    struts2.0官方经典教程

    关于提供的文件列表,它们看起来像是C++项目文件,而非与Struts2.0相关的Java文件。TB.*系列的文件可能是项目中的类和资源文件,如TB.clw可能是类的清单文件,TB.cpp、TBDoc.cpp等可能是实现类的源代码,而TBView.h...

    Struts2.0+Hibernate3.1+Ajax.rar

    Struts2.0、Hibernate3.1和Ajax是三个在Web开发中至关重要的技术,它们在构建高效、灵活且响应迅速的Web应用程序方面发挥着关键作用。这个名为"Struts2.0+Hibernate3.1+Ajax.rar"的压缩包很可能是包含了一个使用这些...

    Struts2.0+dwr的分页

    首先,让我们来看看Struts2.0的分页。在Struts2中,我们可以使用第三方库如DisplayTag或者自定义拦截器和Action来实现分页。DisplayTag是一个强大的JSP标签库,提供了易于使用的分页和排序功能。使用DisplayTag,你...

    struts2.0+rest

    首先,我们来看`struts2.0`。Struts2是Apache软件基金会下的一个开源项目,它是基于MVC模式的Java web框架,主要用于简化企业级应用的开发。其核心组件包括Action(控制器)、Result(视图结果)和Interceptor(拦截...

    STRUTS2.0开发实例

    Struts2.0是一款强大的Java Web应用程序框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了丰富的功能和灵活的配置,使得开发者能够更高效地构建动态Web应用。JBuilder2008是Borland公司推出的一款...

    在Struts 2.0中实现表单数据校验

    ### 在Struts 2.0中实现表单数据校验 #### 一、引言 在Web应用开发中,确保用户提交的数据有效性和安全性是非常重要的一步。Struts 2.0框架提供了强大的功能来帮助开发者处理这些任务。本文将详细介绍如何在Struts...

    Struts2.0 与 sitemesh的例子

    Struts2.0 和 Sitemesh 是两种在Java Web开发中广泛应用的技术,它们结合使用能够增强应用程序的用户体验和页面布局管理。Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建企业级的...

    struts2.0掃盲教程(內附例子和struts2的包)

    Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的一个产品。这个“Struts2.0扫盲教程”旨在帮助初学者快速理解和掌握Struts2.0的核心概念和使用方法。教程包含了丰富的实例和...

    struts2.0 简单登录

    Struts2.0是一个强大的Java Web开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用程序的开发。在这个"struts2.0 简单登录"的应用程序中,我们将探讨如何利用Struts2的核心概念和组件来创建...

    struts2.0+hibernate3.1+spring2.0实例源码的jar1

    Struts2.0、Hibernate3.1和Spring2.0是经典的Java企业级开发框架组合,它们在2000年代中期至后期广泛应用于构建Web应用程序。这些框架各自扮演着不同的角色,共同提供了强大的功能来简化开发过程。 Struts2.0是一个...

    struts2.0文件的上传一个实例

    接下来,我们来看一下如何在Struts2.0中实现一个文件上传的实例。首先,我们需要在Action类中定义一个字段来存储上传的文件,例如: ```java private File file; private String fileContentType; private String ...

    struts2.0和hibernate开发的一个博客系统

    Struts2.0和Hibernate是两个非常重要的Java Web开发框架,它们在构建高效、可维护的Web应用程序中扮演着核心角色。Struts2是一个MVC(Model-View-Controller)框架,而Hibernate则是一个对象关系映射(ORM)工具。在...

    Struts2.0+spring+hibernate的小例子,初学者可以看看

    Struts2.0、Spring 和 Hibernate 是 Java Web 开发中非常经典的三大框架,它们的集成应用通常被称为 SSH(Struts2、Spring、Hibernate)框架。这个小例子是为初学者设计的,旨在帮助理解这三大框架如何协同工作,...

Global site tag (gtag.js) - Google Analytics