(三)深入了解Struts2

本文介绍了Struts2框架的基本配置方法,包括web.xml和struts.xml文件的配置细节,并深入解析了Struts2的工作原理,如方法调用、通配符使用、默认action设置及结果类型处理。

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

一.web.xml

这里写图片描述

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>struts2Demo</display-name>
    <!--过滤器,引入StrutsPrepareAndExecuteFilter ->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
    </filter>
    <!--映射 ->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

二.Struts.xml

这里写图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!-- dtd约束文件 -->
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
    "http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>

<!-- include 引用,可以将每个功能化模块创建一个xml配置文件 -->
<include file="struts_default.xml"></include>

<!-- 
  package 提供了将多个action组织为一个模块方式
           name:  package名称
       extends: 继承父的package包的名称
      abstract:   设置package熟悉为抽象的,抽象的package不能定义action,值为true或false
namespace: 定义package的命名空间,该命名空间影响url的地址,例如为/test,则访问地址为
localhost:8080/struts2Demo/test/a.action
 -->
<package name="default" namespace="/" extends="struts-default" >

<interceptors>
<!-- 定义拦截器 -->
<interceptor name="timer" class="com.zhb.timer"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="timer"></interceptor-ref>
</interceptor-stack>
</interceptors>

<!-- 定义默认拦截器 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>

<!-- 全局result -->
<global-results>
<result name="input">/error.jsp</result>
</global-results>


<!-- action映射 -->
<!-- name:action名称
    class:对应类的路径
    method:调用action方法名
 -->
<action name="helloworld" class="com.zhb.action.HelloWorldAction">
<result>/result.jsp</result>
</action>
</package>
</struts>

三.深入理解struts2

3.1 method调用
<action name="helloworld" class="com.zhb.action.HelloWorldAction" method="add">
<result name ="add">/add.jsp</result>
</action>
3.2 通配符
<action name="helloworld_*" class="com.zhb.action.HelloWorldAction" method="{1}">
<result>/result.jsp</result>
<result name ="add">/{1}.jsp</result>
</action>

这里写图片描述

3.3 默认action
<default-action-ref name="error"></default-action-ref>
<action name="error">
<result>/error.jsp</result>
</action>
3.4 struts2的后缀
<constant name="struts.action.extension" value="html"></constant>

这里写图片描述

3.5 处理结果类型

这里写图片描述

源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值