Struts2文件配置介绍

struts2

structs.xml文件配置

标签

package标签

<?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>
<!-- 配置post请求以及repsone的编码格式 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<!-- 配置请求路径的扩展名 -->
<constant name="struts.action.extension" value="action,,"></constant>
<!-- 开启热部署 -->
<constant name="struts.devMode" value="true"></constant> <package name="index" namespace="/" extends="struts-default">
<action name="" class="com.forward.test.web.action.UserAction" method="toLogin">
<result name="toLogin">/WEB-INF/view/login.jsp</result>
</action>
</package> <include file="com/forward/test/web/action/struts.xml"></include>
</struts>

配置web应用的不同模块,一般在一个功能模块下配置一个package,在当前的package下配置这个模块的多个action

  • name属性给不同的模块起不同的名字,随便写,不重复即可
  • namespace属性给不同的模块设置访问的根路径,可以配置成/
  • extends属性表示继承, struts-default 是struts2给我们提供的一个package

action标签

action 标签表示配置一个请求

  • name 属性表示请求路径的后缀,一般表示功能模块中的具体请求,name的名字就代

    表访问路径的名称
  • class 属性表示当有请求过来的时候调用的是哪个类中的方法,配置全类名
  • method 表示class 请求调用的是class 中的哪个方法,指的是具体的方法名

result标签

result 结果配置,用于设置不同的方法返回值,可以配置不同的返回值对应不同的视图

  • name 属性表示结果处理名称,与action中的返回值对应
  • type 属性表示指定哪个result 类来处理显示的页面,默认是内部转发,可以

    在struts-default 的文件中进行查看
  • 标签体表示相对路径,相对于web应用开始

常量配置

默认的常量配置在structs核心包中

修改常量配置方式及加载顺序

对于常量的配置, 默认加载的是structs核心包中的default.properties,如果通过以下3种进行配置,就会按照默认–>1–>2–>3 的顺序加载,后面设置的常量会覆盖之前设置的常量

  1. 在structs.xml文件中,在structs的根标签下,书写constant 标签进行配置,在项目中主要使用这种方式
  2. 在src下创建structs.properties文件,将内容复制到此文件进行修改
  3. 在web.xml文件中,配置context-param

第一种方式

第二种方式

第三种方式

常用常量设置

  • struts.i18n.encoding=UTF-8 用于配置接收参数和向外输出中文的编码格式一般设置为UTF-8
  • struts.action.extension=action, 指定访问action的路径的后缀名,使用, 表示可以有两个后缀名,可以是action也可以是没有后缀名
  • struts.devMode = false 指定structs是否是以开发模式运行,能够支持修改配置文件后进行热部署,所以我们可以将其设置为true

动态方法调用

如果一个业务模块有多个方法,我们可以使用动态方法调用省略action的配置,设置动态方法调用有两种方法

  • 方法一

    • 开启动态方法调用<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    • 配置action的时候不写method
    • 在访问的时候输入网址http://localhost:8080/webapp/namespace/name!method
	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="helloWorld" namespace="/User" extends="struts-default">
<action name="d_" class="com.zhiyou100.struts.web.action.demo3.Demo3Action" >
<result name="success">/hello World.jsp</result>
</action>
</package>
  • 方法二 通配符方式

    • 关闭动态方法调用
    • 对于方法名可以使用一个* 通配符,在后面的class和method可以使用{索引} 来读取前面的内容
    • 访问路径localhost:8080/webapp/namespace/class_method
	<package name="demo3" namespace="/User" extends="struts-default">
<action name="*_*" class="com.zhiyou100.struts.web.action.demo3.{1}" method="{2}">
<result name="success">/helloWorld.jsp</result>
</action>
</package>

structs2中的默认配置

  • method的默认值execute
  • result的默认值是success
  • result的type的默认值是dispatcher
  • class的默认值是ActionSupport 其中有execute 方法返回值是success
  • 配置package下的默认的action,当访问当前包下,如果找不到指定action,就会自动寻找默认的action
	<package name="default" namespace="/user" extends="struts-default">
<default-action-ref name="demoAction"></default-action-ref>
<action name="demoAction" class="com.forward.test.web.action.UserAction">
<result>/WEB-INF/view/404.jsp</result>
</action>
</package>

结果跳转的方式

结果的跳转方式可以通过result的type属性进行设置

转发

转发到指定页面

对于type属性,默认是dispatcher ,就是转发到响应界面,可以不用进行配置

转发到指定action

对于type属性需要设置为chain ,并在其下方配置<param> 标签

			<result name="error" type="chain">
<param name="namespace">/</param>
<param name="actionName"></param>
</result>

重定向

重定向到指定界面

对于type属性,设置为redirect ,就是重定向到界面,如果需要进行重定向就必须进行此处的设置

			<result name="error" type="redirectAction">
<param name="namespace">/</param>
<param name="actionName"></param>
</result>

Struts2文件配置介绍的更多相关文章

  1. Struts2零配置介绍(约定访问)

    从struts2.1开始,struts2 引入了Convention插件来支持零配置,使用约定无需struts.xml或者Annotation配置 需要 如下四个JAR包 插件会自动搜索如下类 act ...

  2. Struts2文件配置 登陆页面

    Struts 版本号 struts-2.3.16.3 web.xml 配置 <?xml version=”1.0″ encoding=”UTF-8″?> <web-app versi ...

  3. hosts文件配置参数介绍

    hosts文件配置参数介绍 1, ansible_ssh_host : 指定主机别名对应的真实 IP,如:100 ansible_ssh_host=192.168.1.100,随后连接该主机无须指定完 ...

  4. java:struts2.3框架1(struts2快速配置,各文件之间的关系,基础代码简化版,XML中的通配符)

    1.struts2快速配置: A.到http://struts.apache.org下载struts2开发包struts-2.3.32-all.zip B.新建web项目并添加struts2依赖的ja ...

  5. Android多版本flavor配置之资源文件和清单文件合并介绍

    知识背景 Android studio升级到3.0之后,gradle增加了多维度管理配置,便于同一个项目中创建应用的不同版本,分别管理依赖项并签署配置.创建产品风味与创建构建类型类似:只需将它们添加到 ...

  6. Struts2 XML配置详解

    struts官网下载地址:http://struts.apache.org/   1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: S ...

  7. Struts2文件上传功能浅析

    本文将以图片上传为例,解析Struts2文件上传的主要过程实例的功能:1.在jsp页面选择要上传的图片,                 2.为待上传的图片取名,以便于查找               ...

  8. struts2相关简单介绍

    一 Struts2环境配置 1.准备jar包,核心jar包有: 2.创建Struts2项目并导入jar包 3.在Struts2项目中src下创建Struts.xml配置文件 4.在Web.xml文件中 ...

  9. Spring框架入门之基于xml文件配置bean详解

    关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...

  10. 深入 Struts2 的配置 - 处理多个请求-处理请求结果-模型驱动-异常机制

    转:http://www.java3z.com/cwbwebhome/article/article2/2938.html?id=1631 本部分主要介绍struts.xml的常用配置. 1.1.   ...

随机推荐

  1. updog:一款局域网传输文件的软件

    前言 不知道你是否有过这样 的需求,在局域网传输文件,苦于没有好的软件支持,或者只能单向传输,updog可以完全解决这种问题 安装 pip3 install updog updog是python中的一 ...

  2. 第2-4-8章 规则引擎Drools实战(1)-个人所得税计算器

    目录 9. Drools实战 9.1 个人所得税计算器 9.1.1 名词解释 9.1.2 计算规则 9.1.2.1 新税制主要有哪些变化? 9.1.2.2 资较高人员本次个税较少,可能到年底扣税增加? ...

  3. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(35)-Fiddler如何抓取微信小程序的包-下篇

    1.简介 通过前边和宏哥的学习,我们了解到Android 7.0 之后增加了对第三方证书的限制,抓包工具(charles.fiddler等)提供的证书都无法通过校验,也就无法抓取HTTPS请求了,对测 ...

  4. Qwt开发笔记(一):Qwt简介、下载以及基础demo工程模板

    前言   QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并 ...

  5. OpenVINO计算机视觉模型加速

    OpenVINO计算机视觉模型加速 OpenVINO介绍 计算机视觉部署框架,支持多种边缘硬件平台 Intel开发并开源使用的计算机视觉库 支持多个场景视觉任务场景的快速演示 四个主要模块: 1.开发 ...

  6. kernel 启动流程

    一.概述 之前学习了uboot的启动流程,现在接着学习uboot的启动流程,关于 kernel 的启动流程分析的大佬也是很多的,这里还是通过流程的图的方式进行记录,为了像我一样的新手,直观的了解 ke ...

  7. 我做了第一个ChatGPT .net api聊天库

    最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞一 ...

  8. 第三模块的下载、requests模块、openpyxl模块

    目录 第三方模块的下载安装 下载第三模块的方式 针对下载第三模块时可能会出现的问题 网络爬虫模块之requests模块 自动化办公领域之openpyxl模块 第三方模块的下载安装 第三方模块:别人写的 ...

  9. 开发一个MyBatis通用Mapper的轮子

    一.前言 程序猿为什么如此执着于造轮子?MyBatis-Plus如此强大的工具流行这么多年了,我为啥还在重复造这样的轮子? 1.公司的技术规范不允许使用MyBatis-Plus,咱也不知道什么原因: ...

  10. Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈

    本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentatio ...