Struts框架配置详解

1.首先将所必须的Jar包放到项目的WebRoot/WEB-INF/lib目录下。

如果你没有这些Jar文件,你可以到Struts官网上下载:http://struts.apache.org/。因为经常会用到这些Jar包,因此我将Struts所需的Jar包进行了整理,你可以点击这里下载。

Struts所需Jar包下载:http://pan.baidu.com/s/1c0pdqTy

密码:jb2m

如果你想了解更多关于以上列出的Jar包的信息,你可以阅读我的另一篇文章:(MARK)

2.在web.xml中加入如下的Struts配置信息

 1 <!-- Struts框架的配置 开始 -->
 2     <filter>
 3         <filter-name>struts2</filter-name>
 4         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 5     </filter>
 6     <filter-mapping>
 7         <filter-name>struts2</filter-name>
 8         <url-pattern>/*</url-pattern>
 9     </filter-mapping>
10 <!-- Struts框架的配置 结束 -->

3.在src目录下创建struts.xml文件

 1 <?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">
 2 <struts>
 3     <package name="default" namespace="/" extends="struts-default">
 4         <action name="AS_sayHello" class="com.basestruts.action.AS_SayHelloAction"
 5             method="execute">
 6             <result name="success">/result.jsp</result>
 7             <result name="input">/index.jsp</result>
 8         </action>
 9
10         <action name="MD_sayHello" class="com.basestruts.action.MD_SayHelloAction"
11             method="execute">
12             <result name="success">/result.jsp</result>
13             <result name="input">/index.jsp</result>
14         </action>
15     </package>
16 </struts>

主要属性说明:<package> --name:用于区别不同的package;必须是唯一的、可用的变量名;

<package> --namespace:空间名,不同功能的代码放在不同的空间里,使得配置文件层次更加清晰。空间名是调用action时输入路径的组成部分;

<package> --extends:继承其他的package,使得代码更加简洁。每个配置action的package都必须直接或间接继承struts-default这个系统默认的package

<action>  --name:用于在一个package里区别不同的action;必须是唯一的、可用的变量名;是调用action时输入路径的组成部分;

<action>  --class:action所在的路径(包名+类名);

       <action>  --method:action所调用的方法名;

调用action的路径为:namespace + action名。例如当我把struts.xml文件改成:

 1 <?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">
 2 <struts>
 3     <package name="default" namespace="/message" extends="struts-default">
 4         <action name="AS_sayHello" class="com.basestruts.action.AS_SayHelloAction"
 5             method="execute">
 6             <result name="success">/result.jsp</result>
 7             <result name="input">/index.jsp</result>
 8         </action>
 9
10         <action name="MD_sayHello" class="com.basestruts.action.MD_SayHelloAction"
11             method="execute">
12             <result name="success">/result.jsp</result>
13             <result name="input">/index.jsp</result>
14         </action>
15     </package>
16 </struts>

这时,如果我要调用名字为:AS_sayHello的action,那么我必须输入:message/AS_sayHello 才能正确访问到这个Action。

注意,这里不要写成"/message/AS_sayHello",最前面不用加左斜杠。

  在写result视图的时候,有这样两种写法:/WEB-INF/Hello.jsp和WEB-INF/Hello.jsp。这两种的区别你知道吗?/WEB-INF/Hello.jsp它会不计较你的namespace直接就去访问这个地方了。

但是如果是:WEB-INF/Hello.jsp,而你的命名空间又是/test.这样的话,它访问的就是:/test/WEB-INF/Hello.jsp,如果说不存在test,那么直接报错。由此可见,左斜杠的作用就是告诉Struts我要从根目录(WebRoot)开始算起。

4.编写Action处理类

编写的Action类最基本的应该继承ActionSupport类。如果要结合POJO使用,则应该实现ModelDriven接口。

但实际上你也不集成ActionSupport,但这样以来你的工作量便会直线上升,因为ActionSupport帮你做了很多通用的工作。(补充最基本的不继承任何类的Action例子)

所以一般情况下还是建议至少继承ActionSupport类。

下面用一个继承了ActionSupport的Action处理类作为例子:

 1 package com.basestruts.action;
 2
 3 import com.opensymphony.xwork2.ActionSupport;
 4 /**
 5  * 通过直接在Action中声明参数进行参数传递
 6  * @author chenyr
 7  *
 8  */
 9
10 public class AS_SayHelloAction extends ActionSupport {
11
12      /** 名字 **/
13     private String name;
14
15     /** 消息 **/
16     private String message;
17
18
19     /** 传递到前台的消息(必须提供SET/GET方法) **/
20     private String sayHelloStr = "";
21
22     public String execute()
23     {
24         sayHelloStr = "读取不到前台消息!";
25
26         if(name != null && message != null)
27         {
28             sayHelloStr = name + "," + message;
29         }
30
31         System.out.println(sayHelloStr);
32
33         return SUCCESS;
34     }
35
36     /* 省略name, message, sayHelloStr三个属性的SET/GET方法*/
37 }

前台页面用表单传递name, message参数。

 1 <%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@ page contentType="text/html;charset=utf-8" %>
 3
 4 <!-- 省略了其他代码 -->
 5  <body>
 6     <%-- 通过Struts传递参数,数据传递方式必须选择post,否则编码错误! --%>
 7        <form action="message/MD_sayHello" method="post" >
 8             <b>名字:</b><input type="text" id="name" name="name" /></br>
 9             <b>消息:</b><input type="text" id="message" name="message"/></br>
10             <input type="submit" name="submit" value="问好"/>
11         </form>
12   </body>

注意:Struts传递数据时,必须将表单的method属性设为post,否则会出现编码错误!

结果页面result.jsp:

<body>
           <h1>${sayHelloStr }</h1>
</body>

这是最基本的通过在Action中直接声明要接收的参数,并且声明SET/GET方法。还有另外一种是通过ModelDriven实现参数的传递,这种方式下Struts将所有的参数封装到了一个POJO类,使得Action文件代码更加简洁。

如果你想了解更多,可以阅读我的另外一篇博文:Struts中前后台参数传递的两种方式

小结:配置Struts框架的三个步骤为:

第一,加入Jar包;

第二,配置web.xml文件;

第三,创建并配置struts.xml文件;

第四,编写Action处理类。

时间: 2024-11-10 15:16:32

Struts框架配置详解的相关文章

struts.xml配置详解

1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件. 比如一个网上购物程序,可以把用户配置.商品配置.订单配置分别放在3个配置文件user.xml.goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: struts.xml: 1 2 3 4 5 6 7 8 9 10 <?xml version="1.0

struts.xml 配置详解

struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件. 一下分别介绍一下几个struts.xml中常用到的标签 1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件. 比如一个网上购物程序,可以把用户配置.商品配置.订单配置分别放在3个配置文件user.xml.goods.xml和order.xml中,然后在struts.x

[转] struts.xml配置详解

转自:http://www.cnblogs.com/fmricky/archive/2010/05/20/1740479.html struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件. 一下分别介绍一下几个struts.xml中常用到的标签 1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件. 比如一个网上购物程序,可以

[学习笔记]struts.xml配置详解(所有基本配置,包括通配符)

1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件.比如一个网上购物程序,可以把用户配置.商品配置.订单配置分别放在3个配置文件user.xml.goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: struts.xml: [html] view plaincopy <?xml version="1.0

struts.properties配置详解

Struts 2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等.除此之外,Struts 2框架还包含     struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求. struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每个key就是一个Struts 2属性,该key对应的v

struts.properties配置详解(转)

Struts 2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等.除此之 外,Struts 2框架还包含     struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求. struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每个key就是一个Struts 2属性,该key对应的

第四课 TP5框架配置详解

4.1 为什么需要配置文件 通常在框架当中很多的固定的参数,初始化参数,并不是我们直接在使用时添加,一些通用的参数,需要固定的位置存放,然后调用时到固定的地方获取,而不是重复的定义 4.2 有哪些配置文件 惯例配置:核心框架内置的配置文件,无需更改. 应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置. 模块配置:每个模块的配置文件(相同的配置参数会覆盖应用配置),有部分配置参数模块配置是无效的,因为已经使用过. 动态配置:主要是指在控

002--struts.xml配置详解

struts.xml配置详解 1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件. 比如一个网上购物程序,可以把用户配置.商品配置.订单配置分别放在3个配置文件user.xml.goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: struts.xml: <?xml version="1.0"

S2SH框架集成详解(Struts 2.3.16 + Spring 3.2.6 + Hibernate 3.6.10)

近期集成了一次较新版本的s2sh,出现了不少问题,网上资料也是良莠不齐,有的甚至就是扯淡,简单的把jar包扔进去就以为是集成成功了,在这里整理一下详细的步骤,若哪位有什么不同看法,可以留言,欢迎批评改正. 首先说下集成的环境,Eclipse 4.4,Tomcat 7.0.54,Struts2.3.16,Hibernate3.6.10,Spring3.2.6 相关JAR包已上传至百度云:http://pan.baidu.com/s/1pJluA5l 搭建Struts2框架 1. 创建Java We