`
zhulin014
  • 浏览: 52855 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Struts2零配置

阅读更多
Struts2零配置

 

1. 先在web.xml中配置:

<filter>
    <filter-name>struts2</filter-name>
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    <init-param>
        <param-name>actionPackages</param-name>
        <param-value>struts.action,demo.actions2</param-value>
    </init-param>
</filter>
//说明1
Struts2扫描到Action后,从actionPackages指定的包开始,子包名会成为这个Action的namespace,而Action的name则由这个Action的类名决定。
action名字的规则是这样的:将action name从任何“Action”后缀前面截取掉,如果action name含有“/”的话,那么将最后一个“/”后面的第一个字母变为小写。
举例明:

如果我们的actionPackages参数是struts.action,我们的Action类是struts.action.manager.UsersAction

那么我们可以通过下面的url来访问这个类:http://localhost:8080/Struts2CM/manager/users.action .

也就是子包(subpackage)将成为namespace,而action类名将成为action name。如果类名有一个“Action”后缀,那么它将被去掉。

 

//说明2

Controller从actionPackages参数所指向的包struts.action,demo.actions2这两个包中去寻找action,具体的流程是这样的:

1.系统首先通过web.xml文件装载FilterDispatcher类,它要有actionPackages参数

2.FilterDispatcher会初始化一个Dispatcher,并传递actionPackages的值

3.Dispatcher会初始化一个ClasspathConfigurationProvider对象,用它来存放一个或多个Configuration Providers

4.Dispatcher给ConfigurationManager对象增加一个ClasspathConfigurationProvider来处理actionPackages参数

5.Someone会调用ClasspathConfigurationProvider的loadpackages方法

6.Loadpackages会首先利用ResolverUtil从所列package(就是actionPackages参数的值)中找到所有实现了Action接口和名字带有Action后缀的类,然后这些类会集中放入一个Set集合中,然后这个Set中的每个类都会被传递给processActionClass方法

7.processActionClass首先确定命名空间,然后捕捉任何ParentPackage和Results类型的Annotation,接着创建一个ActionConfig,设置action name,package name以及results。

 

 

 

 2. 在action类文件中加入anotation功能:【主要是添加result】

package struts.action;

import hibernate.*;
import java.util.*;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.config.NullResult;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
@Results({   
 @Result(name="add", value="/add.jsp", type=NullResult.class),   
 @Result(name="list", value="/list.jsp", type=NullResult.class),
 @Result(name="update", value="/update.jsp", type=NullResult.class),
 @Result(name="index", value="/index.jsp", type=NullResult.class),
 @Result(name="delete", value="/delete.jsp", type=NullResult.class),
 @Result(name="detail", value="/detail.jsp", type=NullResult.class)
 })

public class UsersAction extends ActionSupport

{

 Users u=new Users();
 
 public String add() throws Exception
 {
    //...  

 }
 
     //...  

}

 

3. 在使用动态方法调用来实现类似dispatchaction的功能:

 

1. 先设置Struts2允许动态方法调用。设置struts.enable.DynamicMethodInvocation常量为true。

在struts.xml中设置如下:

<struts>
 <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
</struts>

在访问时,如下:users!list.action

     【表示调用UsersAction类的list()方法】

0
1
分享到:
评论
1 楼 ynstudio 2009-12-29  
struts.enable.DynamicMethodInvocation 默认就是true吧
你们用法和我们比较类似。

Users u=new Users();这个一般不需要吧。定义个变量就可以了。顶一个setUser(User u)方法,然后界面上input的name写成user.username之类的,struts2会帮你创建User对象的。

另外建议了解一下preparable。

相关推荐

    struts2 零配置

    "Struts2 零配置"是Struts2的一种特性,允许开发者在不编写大量XML配置文件的情况下,快速搭建和运行应用程序。这主要得益于Struts2的插件机制和注解支持。 首先,Struts2的零配置主要依赖于以下两个核心概念: 1....

    struts2零配置

    "Struts2零配置"是Struts2框架中的一个重要特性,旨在提高开发效率,减少繁琐的XML配置工作。这个特性允许开发者在不编写大量XML配置文件的情况下,依然能实现应用的正常运行。 在传统的Struts2应用中,开发者需要...

    struts2零配置个人整理文档

    ### Struts2零配置个人整理文档 #### 一、Convention插件详解 ##### 1. 设置结果页面路径 - **背景介绍**:Struts2框架提供了便捷的方式来处理Web请求,并返回响应视图。为了简化配置过程,Struts2提供了一个名为...

    Struts2零配置+FreeMarker用户管理系统(UMS)

    这个名为"Struts2零配置+FreeMarker用户管理系统(UMS)"的项目,旨在通过注解的方式展示如何在不编写XML配置文件的情况下,利用Struts2和FreeMarker创建一个用户管理系统。 首先,我们来了解一下Struts2框架。Struts...

    struts2零配置入门代码

    在“struts2零配置入门代码”这个主题中,我们将深入探讨如何在不编写大量XML配置文件的情况下,启动并运行一个基本的Struts2应用程序。 Struts2的核心在于它的Action类,它是业务逻辑处理的主要组件。在“零配置”...

    struts2 零配置所需的包及示例

    "零配置"是指在Struts2中可以通过不写XML配置文件,而是利用注解或者Java配置来实现应用程序的配置。这种方式使得代码更加简洁,也更易于维护。下面我们将深入探讨Struts2的零配置实现及其所需的包和示例。 首先,...

    struts2零配置[总结].pdf

    在早期,Struts2主要依赖XML配置文件来定义和管理应用程序的行为,但随着技术的进步和对简洁配置的需求增加,Struts2引入了零配置的概念,以减少繁琐的XML配置。 "Struts2零配置"指的是尽量减少或消除传统Struts2...

    简述STRUTS2_Convention零配置

    STRUTS2 Convention 零配置是Struts2框架中的一种高级特性,旨在简化应用程序的配置,让开发者能够更快地构建MVC应用。从Struts2.1版本开始,推荐使用Convention插件替代Codebehind插件,因为它更加自动化,几乎无需...

    MyFramework - struts2 零配置:convention

    "MyFramework - Struts2 零配置:convention" 主题着重于介绍如何使用Struts2的Convention插件实现“零配置”开发,极大地简化了传统XML配置的繁琐过程。在传统的Struts2应用中,开发者需要为每个Action类和结果页面...

    struts2 spring4 hibernate4 Struts2零配置,json基本架包

    struts2 spring4 hibernate4 Struts2零配置基本架包 struts2-json-plugin-2.5.5.jar struts2-convention-plugin-2.5.5.jar

    struts2零配置convention-plugin

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行...

    STRUTS2零配置.doc

    Struts2是一款流行的Java web开发框架,其零配置特性始于版本2.1,主要通过引入Convention插件实现。Convention插件旨在简化应用配置,避免过度依赖XML或注解,通过预定义的规则自动配置Action、结果视图以及Action...

    struts2零配置[收集].pdf

    Struts2是一个流行的Java web开发框架,...总的来说,Struts2 LightURL插件是Struts2框架向更简洁配置方式迈出的一步,它整合了类似插件的优点,减少了开发者在XML配置上的工作量,使Struts2应用的构建更加灵活和高效。

    S2SH全注解的增删改查(struts2零配置)

    网上也很少关于全注解配置的例子,这里做了一个关于Struts2.2.3+Spring 3.0.6 + Hibernate3.6的一个很简陋增删改查,以供参考,主要是一个全注释的例子和对新的SSH2的整合。附带sql和jar包

Global site tag (gtag.js) - Google Analytics