`
cfeers
  • 浏览: 141372 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2.0 struts.xml配置文件详解

阅读更多

struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <include file="struts-default.xml"></include>

    //cjhstruts.xml //省略
 <include file="cjhstruts.xml"></include> <!-- 引用加一个xml文件(这样在一个大的项目中如果action太多,可以分模块放) -->
 <!-- package中的namespace表示命名空间如果设置了,刚在页面用搞用??.action要加上 命名空间/??.action 比如 mm/test1.action-->
 <package name="test" extends="struts-default">   <!-- extends:表示继承父类struts-default -->
  <interceptors>
   <!-- 定义拦截器 所定义的类要继承AbstractInterceptor类 -->
   <interceptor name="interceptor1" class="com.yysoft.interceptors.Interceptors1"></interceptor>
   <interceptor name="methodFilterInterceptor1" class="com.yysoft.interceptors.MethodFilterInterceptor1">
    <!--  exculdeMethods:是不被拦截的方法,如果有多个以逗号分隔。
      includeMethods:需要被拦截的方法,如果有多个以逗号分隔。-->
    <!--<param name="exculdeMethods">execute</param>-->
    <!--<param name="includeMethods">execute</param>-->
   </interceptor>
   <interceptor-stack name="mydefalut">  <!-- 定义默认拦截器  mydefalut为固定的 -->
    <interceptor-ref name="defaultStack"></interceptor-ref>  <!-- struts默认的  defaultStack为固定的-->
    <interceptor-ref name="interceptor1" />  <!-- 需求添加的默认拦截器 -->
   </interceptor-stack>
  </interceptors>
  <!-- 定义全局的反回页面 -->
  <global-results>
   <result name="error">/error.jsp</result>
  </global-results>
 
 <!-- 说明用,没有作用 -->
  <!--<global-results>
            <result name="mainMenu" type="redirect">mainMenu.html</result>
            <result name="dataAccessFailure">pages/dataAccessFailure.jsp</result>
        </global-results>-->
        <!--定义异常处理 exception指定异常  result当发生该异常时进放到那个页面进行处理    -->
        <!--<global-exception-mappings>
            <exception-mapping exception="org.springframework.dao.DataAccessException" result="dataAccessFailure"/>
        </global-exception-mappings>-->
 
  <action name="test1" class="com.yysoft.action.Test1Action" method="execute">
      <!--<interceptor-ref name="interceptor1"></interceptor-ref>-->
      <!--<interceptor-ref name="methodFilterInterceptor1"></interceptor-ref>-->
      <!--<interceptor-ref name="defaultStack"></interceptor-ref>-->
   <result name="success">/success.jsp</result>
   <result name="failure" type="redirect">/failure.jsp</result>
   <result name="login" type="redirect">/failure.jsp</result>  <!-- 当登录出错时返回到这 return Action.LOGIN; -->
  </action>
 
  <action name="test2" class="com.yysoft.action.Test2Action">
   <result name="success">/success.jsp</result>
   <result name="failure" type="redirect">/failure.jsp</result>
  </action>
 
 
  <action name="validate" class="com.yysoft.action.ValidateAction">
   <result name="success">/validateOK.jsp</result>
   <result name="failure">/validateNO.jsp</result>
   <result name="input">/validateNO.jsp</result>
  </action>
 </package>
</struts>

 

以下是所配置的action

一:最简单的action

package com.yysoft.action;

public class Test1Action {
 private int t1id;
 private String t1name;
 
 public int getT1id() {
  return t1id;
 }
 public void setT1id(int t1id) {
  this.t1id = t1id;
 }
 public String getT1name() {
  return t1name;
 }
 public void setT1name(String t1name) {
  this.t1name = t1name;
 }
 public String execute(){
  System.out.println("成功进入..."+t1id+"   "+t1name);
  if(t1name.length()>5){
   System.out.println("长度大于5");
   return "success";
  }else{
   System.out.println("长度小于或等于5");
   return "failure";
  }
 }
}

 

二:再bean属性的action

public class Test2Action {
 Users us;
 public Users getUs() {
  return us;
 }
 public void setUs(Users us) {
  this.us = us;
 }
 public String execute(){
  if(us.getUname().length()>5){
   System.out.println("长度大于5");
   return "success";
  }else{
   System.out.println("长度小于或等于5");
   return "failure";
  }
 }
}

三:取得请求对象的action

public class Test3Action {
 private String cc;
 public void setCc(String cc) {
  this.cc = cc;
 }
 public String getreq(){
  ActionContext ac=ServletActionContext.getContext();
  Map mapapplication = ac.getApplication();
  Map mapsession = ac.getSession();
  Map mapparam=ac.getParameters();
  HttpServletRequest request=ServletActionContext.getRequest();
  HttpServletResponse response=ServletActionContext.getResponse();
  String reqid=request.getParameter("reqid");
  String reqname=request.getParameter("reqname");
  Object objcjh=mapsession.get("cjh");
  Object objchen=mapsession.get("chen");
  Object objo=mapsession.get("ok");
 
  System.out.println("reqid"+reqid);
  System.out.println("reqname"+reqname);
  System.out.println("objcjh"+objcjh);
  System.out.println("objchen"+objchen);
  System.out.println("objo"+objo);
  System.out.println("cc:"+cc);
  return "success";
 }
}

四:另一种取得请求对象的action

public class Test4Action implements ServletRequestAware, ServletResponseAware,
  ApplicationAware, SessionAware {
 Map mapsession,mapapplication;
 ServletRequest request;
 ServletResponse response;
 public void setServletRequest(HttpServletRequest req) {
  this.request=req;
 
 }
 public void setServletResponse(HttpServletResponse res) {
  this.response=res;

 }
 public void setApplication(Map app) {
  this.mapapplication=app;

 }
 public void setSession(Map sess) {
  this.mapsession=sess;

 }
 public String gettest4(){
  System.out.println("");
  String reqid=request.getParameter("reqid");
  String reqname=request.getParameter("reqname");
  Object objcjh=mapsession.get("cjh");
  Object objchen=mapsession.get("chen");
  Object objo=mapsession.get("ok");
 
  System.out.println("reqid"+reqid);
  System.out.println("reqname"+reqname);
  System.out.println("objcjh"+objcjh);
  System.out.println("objchen"+objchen);
  System.out.println("objo"+objo);
  return "success";
 }
 public String gettest4_1(){
  System.out.println("进放到gettest4_1");
  return "success";
 }
}

五:拦截器

public class Interceptors1 extends AbstractInterceptor{

 //定义一个拦截器
 @Override
 public void init() {
  System.out.println("初始化拦截器");
  super.init();
 }
 @Override
 public String intercept(ActionInvocation actionInvocation) throws Exception {
  System.out.println("进入到拦截器Interceptors1.java");
  Map session = actionInvocation.getInvocationContext().getSession();
  ServletRequest request=ServletActionContext.getRequest();
  System.out.println(request.getParameter("t1id"));
  System.out.println(request.getParameter("t1name"));
  Object c=session.get("c");
  if(c!=null){
   System.out.println(c.toString());
   return actionInvocation.invoke();  //进行后续操作。
  }else{
   System.out.println(Action.LOGIN);
   return Action.LOGIN;
  }
 }
 @Override
 public void destroy() {
  System.out.println("销毁拦截器");
  super.destroy();
 }
}

分享到:
评论
2 楼 cfeers 2010-08-30  
markxing 写道
谢谢分享。。。

不客气,呵呵。
1 楼 markxing 2010-08-30  
谢谢分享。。。

相关推荐

    struts2.0中struts.xml配置文件详解

    在深入探讨Struts2.0框架中的`struts.xml`配置文件之前,我们先来了解一下Struts2.0框架的基本概念。Struts2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    Struts struts-config.xml配置

    ### Struts struts-config.xml配置详解 #### 一、引言 在Java Web开发领域,Struts框架一直是构建MVC架构应用的重要工具之一。而`struts-config.xml`配置文件则是Struts应用的核心配置文件,它负责管理Struts应用中...

    struts-config.xml配置文件详解

    Struts-config.xml 配置文件详解 Struts-config.xml 是 Struts 框架的主要配置文件,用于配置 Struts 应用程序的各种设置。在该文件中,可以配置数据源、Form Bean、Action 和插件等信息。下面是 Struts-config.xml...

    web.xml配置文件详解

    ### web.xml配置文件详解 #### 一、概述 `web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其...

    struts1中web.xml配置详解

    struts1 中 web.xml 配置详解 struts1 框架是一种基于 Java 语言的 Web 应用程序开发框架,它提供了一个灵活的、可扩展的框架来开发基于 Web 的应用程序。在 struts1 框架中,web.xml 文件是必不可少的配置文件之一...

    Struts框架中struts-config.xml文件配置小结

    ### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...

    Struts2.0学习系列.doc

    - 创建`struts.xml`配置文件,这是Struts 2的核心配置文件,用于定义动作(Action)、结果(Result)以及拦截器链。 6. **配置文件详解**: - `web.xml`中,`&lt;filter&gt;`元素定义了名为`struts2`的过滤器,`...

    struts2.0中文教程.rar

    4. **配置文件详解**:Struts2的配置文件通常为struts.xml,用于定义Action、结果类型、拦截器栈等。通过配置文件,开发者可以灵活地指定URL到Action的映射、Action的执行流程等。 5. **OGNL表达式语言**:OGNL...

    freemarker+struts2.0 实例20090309.rar

    - 创建`struts.xml`配置文件,配置Struts2.0的拦截器、Action和Result类型。 - 在`web.xml`中配置Struts2.0的前端控制器Filter。 - 设定FreeMarker的配置,包括模板路径、编码格式等。 - 创建FreeMarker模板文件...

    struts2的struts.properties配置文件详解

    Struts2的Struts.properties配置文件详解 Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件...

    struts.xml和struts.properties配置详解

    在Struts中,`struts.xml`和`struts.properties`文件是两个核心的配置文件,它们分别负责定义应用的行为和设置全局属性。 **`struts.xml`配置详解** `struts.xml`是Struts 2框架的核心配置文件,用于定义动作映射...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

    struts.xml配置文件详解

    ### Struts.xml配置文件详解 #### 一、Struts配置文件概述 在Struts框架中,`struts.xml`配置文件扮演着极其重要的角色。它主要用于定义应用中的各种配置信息,包括但不限于包(Package)、拦截器(Interceptor)...

    Struts-config.xml配置详解

    Struts的配置文件通常命名为struts-config.xml,它是整个Struts应用的核心配置文件,通过定义一系列的XML元素来设定框架的不同功能和行为。下面将详细介绍struts-config.xml中8个主要配置元素的功能和使用方法。 1....

    Struts2.0 入门教程+帮助手册+权威指南+配置文档+标签库+增删改查代码等.rar

    `struts2.0中struts.xml配置文件详解.docx`深入解析了Struts2的核心配置文件`struts.xml`,该文件定义了Action、Result、Interceptor栈等关键元素,是控制流程的中心。通过学习这份文档,开发者可以了解如何配置...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts自动加载的一个配置文件列表 struts.configuration.xml.reload Whether to reload the XML configuration or not 是否加载xml配置(true,false) struts.continuations.package The package containing ...

    struts-config.xml配置详解.txt

    这个strut-config配置详解是韩顺平老师指定的 很多同学都看过韩老师的视频或者上过韩老师的课程吧

Global site tag (gtag.js) - Google Analytics