Struts2【配置】 (二)

简介: 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了…..对Struts的配置文件有了了解…..本博文继续讲解Struts在配置的时候一些值得要学习的细节…

Struts常量

Struts2默认的访问后缀是.action……

微信图片_20220411171834.jpg

修改默认访问路径

有的时候,可能根据项目的需要…我想后缀名默认并不是.action,那我该怎么办呢??

我们在jar包上找到它的配置文件…

微信图片_20220411171913.jpg

我们发现它的默认值是action,,

值得注意的是:两个逗号并不是多余的

我们不可能是直接修改jar包中的配置文件的,在struts.xml文件中提供了constant节点供我们修改struts的常量

微信图片_20220411171917.jpg

前面已经说了,两个逗号并不是多余的。那么直接在配置文件中配置action时,会怎么样:

<constant name="struts.action.extension" value="action"/>

微信图片_20220411171920.jpg

也就是说,“,”号能够匹配空格键

举例子说明:

  • 如果配置后缀为action。那么后缀一定要写action
  • 如果配置后缀为action,do,。那么后缀可以是action,可以是do,也可以不写
  • 如果配置后缀为action,,。那么后缀可以是action,可以不写


Struts常用的常量

微信图片_20220411172028.jpg

<struts>
    <!-- 0. 请求数据编码 -->
     <constant name="struts.i18n.encoding" value="UTF-8"/>
    <!-- 1. 修改Struts默认的访问后缀 -->
    <constant name="struts.action.extension" value="action,do,"></constant>
    <!-- 2. 修改xml自动重新加载 -->
    <constant name="struts.configuration.xml.reload" value="true"/>
    <!-- 3. 开启动态方法调用 (默认不开启)-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    <!-- 4. 修改上传文件的最大大小为30M -->
    <constant name="struts.multipart.maxSize" value="31457280"/>
</struts>

只有动态方法调用是我们没有接触过的。

那动态方法调用是怎么回事呢???这是样的:在action节点不配置method属性,在地址栏使用资源名称!方法名的方式去调用业务方法

微信图片_20220411172032.jpg


跳转全局视图

为什么需要跳转全局视图?

首先,我们还是来看一个需求:现在我有两个Action,PrivilegeAction和CategoryAction

  • PrivilegeAction
public class PrivilegeAction extends ActionSupport {
    public String login() {
        System.out.println("我是登陆");
        return "success";
    }
    public String register() {
        System.out.println("我是注册");
        return "success";
    }
}

CategoryAction

public class CategoryAction extends ActionSupport {
    public String add() {
        System.out.println("我是添加");
        return "success";
    }
    public String find() {
        System.out.println("我是查找");
        return "success";
    }
}

在struts.xml文件中配置

    <action name="privilege_*" class="privilegeaction.PrivilegeAction" method="{1}">
        <result name="success">/index.jsp</result>
    </action>
    <action name="category_*" class="privilegeaction.CategoryAction" method="{1}">
        <result name="success">/index.jsp</result>
    </action>

我们发现一个问题,只要是方法返回值是success,那么就跳转到首页….如果有大量Action方法返回的都是success,那么就要写很多很多个result节点了..


使用跳转全局视图

代码就可以变成是这样子了,注意:global-results节点需要在action节点的上面

<package name="privilige" extends="struts-default" >
    <global-results>
        <result name="success">/index.jsp</result>
    </global-results>
    <action name="privilege_*" class="privilegeaction.PrivilegeAction" method="{1}">
    </action>
    <action name="category_*" class="privilegeaction.CategoryAction" method="{1}">
    </action>
</package>

效果:

微信图片_20220411172324.jpg



目录
相关文章
|
1月前
|
人工智能 JavaScript 编译器
AI工具的“超级外挂”:从零手把手教你搭建私人 MCP 服务器
本文手把手教你用Node.js从零搭建私人MCP(模型上下文协议)服务器,解决AI无法直接访问本地文件、数据库等痛点。含环境配置、TypeScript编译避坑、Hello World工具开发及Inspector调试全流程,助你赋予AI真实行动力!
623 1
AI工具的“超级外挂”:从零手把手教你搭建私人 MCP 服务器
|
自然语言处理 安全 API
inno setup介绍(转)
使 用 笔 记1、Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。
2572 0
|
开发工具 git
|
IDE 开发工具 Android开发
通义灵码什么时候能支持eclipse IDE?
通义灵码什么时候能支持eclipse IDE?
|
自然语言处理 Java UED
Spring Boot中的国际化配置
Spring Boot中的国际化配置
|
移动开发 前端开发
基于jeecg-boot的flowable流程加签功能实现
基于jeecg-boot的flowable流程加签功能实现
1371 0
|
Java Maven 开发工具
SpringToolSuit 保姆级安装教程
SpringToolSuit 保姆级安装教程
1626 0
SpringToolSuit 保姆级安装教程
|
6月前
|
XML Java Android开发
P3C-CodeStyle-IDEA-2025
P3C-CodeStyle 是一套Java代码规范配置,设定右边界120字符,强制换行与缩进规则,统一注释、参数、异常等格式,提升代码可读性与团队协作效率。
969 1
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
1814 91

热门文章

最新文章

下一篇
开通oss服务