一个简单的struts2环境

本文档详细介绍了如何从零开始搭建Struts2框架环境,包括创建Web工程、配置核心文件struts.xml、实现Action类及JSP页面交互等关键步骤,并通过一个简单的示例项目演示整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

* 创建web工程

* 引入struts2需要的jar (最少依赖包)

        struts2-core-2.1.8.1.jar :Struts 2框架的核心类库

           xwork-core-2.1.6.jar :XWork类库,Struts 2在其上构建

           ognl-2.7.3.jar :对象图导航语言(Object Graph Navigation Language),

                               struts2框架通过其读写对象的属性

           freemarker-2.3.15.jar :Struts 2UI标签的模板使用FreeMarker编写

           commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4JJDK 1.4+的日志记录。

           commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后需要加入此文件

           commons-io-1.3.2.jar,上传文件依赖的jar

          

* 定义jsp页面

       <ahref="${pageContext.request.contextPath}/primer/helloWorldAction.action">helloWorld</a><br>        

* 创建action

       public class HelloWorldAction implements Action{

                     public String execute() throws Exception {

                            System.out.println("HelloWorldAction action");

                            return "success";

                     }

       }

      

* 创建struts.xml文件

      * 该文件放置在src

      * 该文件的规范在struts2-core-2.1.8.1.jar包下/struts-2.1.7.dtd文件中

      * 配置如下

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

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<!--  客户端的请求路径 /primer/helloWorldAction.action-->

<!-- package标签:类似于java中的包,规范化管理

       * name:包的唯一名称, 主要作用用于继承

       * namespace:命名空间,包的唯一标识,根据该属性,来查找具体是哪一个包

       * extends:该属性用于继承其他的包,struts2中必须继承struts-default包,该包在struts2-core-2.1.8.1.jar/struts-default.xml文件中代码如下

<package name="struts-default" abstract="true">

 action标签:请求的action的配置

* name:action的唯一标识,代表的是请求的action的名称

       * class:对应的action的完整的类路径

              result:标签:表示返回的结果

       * name:属性:该标签的唯一名称.该属性的值必须和execute方法的返回值相同

              public String execute() throws Exception {

                            System.out.println("HelloWorldAction action");

                                   return "success";

                            }

       * result中文本:要转向的路径

--> 

<!--    注意/不能丢,否则找不到Action-->

<package name="primer" namespace="/primer" extends="struts-default">

       <action name="helloWorldAction" class="cn.itcast.primer.HelloWorldAction">

              <result name="success">/primer/success.jsp</result>

              <result name="error">/primer/error.jsp</result>

</action>

</package>

</struts>

为什么要继承struts-default.xml

原因:struts-default.xml文件中,定义了拦截器和拦截器栈,struts2中很多工作是由拦截器完成的,如果不继承struts-default,struts2什么都不能干        

  

                    

* web.xml文件中配置过滤器,加载struts.xml文件

<filter>

       <filter-name>StrutsPrepareAndExecuteFilter</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

       <filter-name>StrutsPrepareAndExecuteFilter</filter-name>

       <url-pattern>/*</url-pattern>

       </filter-mapping>

 

       

* 测试:

       http://localhost:808/itcast1021struts2/primer/test.jsp

     

struts2 配置文件加载顺序:struts-default.xml àstruts-plugin.xml--à struts.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值