Struts2基础总结-入门篇

    xiaoxiao2025-02-25  24

    Struts2基础总结-入门篇

    一、Struts2环境搭建

    在web项目的WEB—IFN/lib目录下导入所需的jar包 可在Struts2的示例项目中的Copy

    在web.xml中配置Struts2的Filter

    <!-- 配置Struts 2框架的核心Filter --> <filter> <!--过滤器名 --> <filter-name>struts2</filter-name> <!-- 配置Struts 2的核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- 让Struts 2的核心Filter拦截所有请求 --> <filter-mapping> <!--过滤器名 --> <filter-name>struts2</filter-name> <!-- 匹配所有请求 --> <url-pattern>/*</url-pattern> </filter-mapping>复制struts.xml文件到web应用的src下,同样可以从Struts2的示例代码中Copy

    二、Struts.xml详解

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- package: 包. struts2 使用 package 来组织模块. name 属性: 必须. 用于其它的包应用当前包. extends: 当前包继承哪个包, 继承的, 即可以继承其中的所有的配置. 通常情况下继承 struts-default struts-default 这个包在 struts-default.xml 文件中定义. namespace 可选, 如果它没有给出, 则以 / 为默认值. 若 namespace 有一个非默认值, 则要想调用这个包里的Action, 就必须把这个属性所定义的命名空间添加到有关的 URI 字符串里 http://localhost:8080/contextPath/namespace/actionName.action namespace的搜索顺序:指定命名空间-->默认命名空间-->报错 --> <package name="helloWorld" extends="struts-default"> <!-- 配置一个 action: 一个 struts2 的请求就是一个 action name: 对应一个 struts2 的请求的名字(或对一个 servletPath, 但去除 / 和扩展名), 不包含扩展名 class 的默认值为: com.opensymphony.xwork2.ActionSupport method 的默认值为: execute result: 结果. --> <action name="product-input" class="com.opensymphony.xwork2.ActionSupport" method="execute"> <!-- result: 结果. 表示 action 方法执行后可能返回的一个结果. 所以一个 action 节点可能会有多个 result 子节点. 多个 result 子节点使用 name 来区分 name: 标识一个 result. 和 action 方法的返回值对应. 默认值为 success type: 表示结果的类型. 默认值为 dispatcher(转发到结果.) --> <result name="success" type="dispatcher">/WEB-INF/pages/input.jsp</result> </action> </package> </struts> 在Struts2中使用package来管理Action,package的作用和java中的类包相似。package配置时必须指定name属性并且保证唯一性通常每个package都应该继承struts-defaultpackage还可指定abstract=“true”定义为抽象包。抽象包中不包含Action

    三、action和Action类的区别

    actionAction代表struts的一个请求能够处理Struts的请求类

    关于Action类定义的要求 1. 属性名必须遵守与javaBean属性相同的命名规则,属性的类型可以是任意类型,8种基本数据类型可实现自动转换。 2. 必须带有无参构造函数 3. 至少有一个供struts执行action调用的方法 4. 同一个Action类中可设置不同的方法用来应答不同的action请求 5. Struts2会为每个action创建新的Action实例,既Struts为线程安全。

    转载请注明原文地址: https://ju.6miu.com/read-1296622.html
    最新回复(0)