struts2_day02_struts.xml中配置详解

本文详细介绍了Struts2框架的配置文件及其加载顺序,深入解析了struts.xml文件中的关键标签,如constant、package、action及result,并展示了如何通过不同方式创建动作类以及动作方法的多种访问方式。

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

1、struts2的6个配置文件

 文件说明
不能修改default.propertieskey=value的形式,类似于开关
struts-default.xml配置的都是struts2的核心
struts-plugin.xml只有使用了plugin的jar时才有的配置文件
 struts.xml项目中的struts2核心配置
 struts.properties不推荐使用
 web.xml给过滤器配置参数

加载时机是:在项目启动时就开始加载

加载顺序:按照上述顺序加载

注意:遇到相同的配置信息时,后加载的会覆盖先加载的

配置文件的位置

default.properties配置文件位置

struts-default.xml位置

struts-plugin.xml

位置:插件包jar包中,没有导插件包时不存在

2、struts.xml中标签详解

2.1、constant标签

作用

配置struts2的常量

<?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>

	<!-- 开启开发者模式 -->
	<constant name="struts.devMode" value="true"></constant>
</struts>

常用的常量

常量名常量值说明
struts.i18n.encodingUTF-8项目中使用的编码
struts.objectFactory.spring.autoWirename和spring框架整合有关
struts.multipart.parserjakarta指定文件上传用的组件
struts.multipart.maxSize2097152文件上传时,总文件大小的限制:2M
struts.action.extensionaction,,能进入struts2框架内部的URL地址后缀,多个值用逗号分隔
struts.enable.DynamicMethodInvocationfalse是否开启动态方法调用
struts.devModefalse

是否开启开发者模式
开发者模式:修改配置文件,不需要重启服务器

开发阶段建议为true

struts.ui.themexhtml页面展示用的主题

2.2、package标签

作用

建立一个包,把我们的动作配置按照面向对象的思想来管理

属性

  • name
    • 指定包的名称。必须写,必须唯一
  • extends
    • 指定当前包的父包,子包自动具备父包的配置。
    • 我们的包一般都需要继承struts-default包
    • 该包中配置着struts2的核心,如果不继承该包,则不能使用struts2的核心
  • abstract
    • 把当前包声明为抽象包
    • 抽象包就是用来被继承的,里面定义的公共配置
    • 只有没有action标签的包,才能声明为抽象包
  • namespace
    • 指定当前包的名称空间
    • 把访问URL按照模块化来管理
    • 当包上指定了名称空间之后,访问URL就变成了:url = 名称空间+action标签的name取值
    • 名称空间的写法
      • 必须以/开头
      • 后面的第一个字符必须是字母

2/3、action标签

作用

  • 建立动作名称,动作类和动作方法的对应关系

属性

  • name:指定动作名称,它不能重复
  • class:指定动作类的全限定类名
  • method:指定动作方法名称

2.4、result标签

作用

配置结果视图的地址

属性

  • name:用于和动作方法的返回值比较,当一致时前往指定的位置
  • type:用何种方式前往(请求转发,重定向)

常用的取值

  • dispatcher:请求转发到一个指定jsp页面(默认值)
  • chain:请求转发到某个Action
  • redirect:重定向到一个指定的jsp页面或者是一个action
  • redirectAction:重定向到一个指定的action
  • stream:文件下载的时候用到

3、创建动作类的方式

3.1、普通的Java类

public class HelloAction {
	
	public String sayHello(){
		System.out.println("HelloAction中的sayHello方法执行了。。。。");
		return "success";
	}
 
}

3.2、实现Action接口

import com.opensymphony.xwork2.Action;

public class HelloAction implements Action{
	
	@Override
	public String execute() throws Exception {
		System.out.println("HelloAction中的sayHello方法执行了。。。。");
		return "success";
	}
 
}

3.3、继承ActionSupport类

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport{
	
	public String sayHello(){
		System.out.println("HelloAction中的sayHello方法执行了。。。。");
		return "success";
	}
 
}

4.动作方法的访问方式

动态方法访问

作用

减少Action数量

语法

动作类的名字!动作方法的名字.action

使用

  • 在struts.xml文件中,开启动态方法调用
<!-- 开启动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
  •  页面中
<a href="${pageContext.request.contextPath }/user!login.action">登录</a>

调用UserAction类的login()方法 

通过method属性配置

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{

	public String login(){
		return SUCCESS;
	}
	
	public String register(){
		return SUCCESS;
	}
}

 

<?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>

	<!-- 开启开发者模式 -->
	<constant name="struts.devMode" value="true"></constant>

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

		<action name="userAction" class="com.itheima.web.UserAction"
			method="login">
			<result name="success">/success.jsp</result>
		</action>
		<action name="userAction" class="com.itheima.web.UserAction"
			method="register">
			<result name="success">/success.jsp</result>
		</action>

	</package>

</struts>

通过通配符的配置方式

页面

<h1>Action方法的3种访问方式三:通过通配符的配置方式:</h1>
<a href="${pageContext.request.contextPath }/loginUser.action">登录</a>
<a href="${pageContext.request.contextPath }/registerUser.action">注册</a>

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>

	<!-- 开启开发者模式 -->
	<constant name="struts.devMode" value="true"></constant>

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

		<action name="*User" class="com.itheima.web.UserAction"
			method="{1}">
			<result name=”success”>/{1}_success.jsp</result>
			<result name="input">/{1}.jsp</result>
			<result name="error">/error.jsp</result>
		</action>

	</package>

</struts>

 动作类

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{

	public String login(){
		return SUCCESS;
	}
	
	public String register(){
		return SUCCESS;
	}
}

玩一玩

<h1>Action方法的3种访问方式三:玩一玩</h1>
<a href="${pageContext.request.contextPath }/login_User.action">登录</a>
<a href="${pageContext.request.contextPath }/register_User.action">注册</a>
<br/>
<a href="${pageContext.request.contextPath }/add_Product.action">添加商品</a>
<a href="${pageContext.request.contextPath }/update_Product.action">修改商品</a>
<?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>

	<!-- 开启开发者模式 -->
	<constant name="struts.devMode" value="true"></constant>

	<package name="user" namespace="/" extends="struts-default">
		<action name="*_*" class="com.itheima.action.{2}Action" method="{1}">
     		    <result name="success">/{1}_success.jsp</result>
     	        </action>

	</package>

</struts>

 

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在机器人技术中,轨迹规划是实现机器人从一个位置平稳高效移动到另一个位置的核心环节。本资源提供了一套基于 MATLAB 的机器人轨迹规划程序,涵盖了关节空间和笛卡尔空间两种规划方式。MATLAB 是一种强大的数值计算与可视化工具,凭借其灵活易用的特点,常被用于机器人控制算法的开发与仿真。 关节空间轨迹规划主要关注机器人各关节角度的变化,生成从初始配置到目标配置的连续路径。其关键知识点包括: 关节变量:指机器人各关节的旋转角度或伸缩长度。 运动学逆解:通过数学方法从末端执行器的目标位置反推关节变量。 路径平滑:确保关节变量轨迹连续且无抖动,常用方法有 S 型曲线拟合、多项式插值等。 速度和加速度限制:考虑关节的实际物理限制,确保轨迹在允许的动态范围内。 碰撞避免:在规划过程中避免关节与其他物体发生碰撞。 笛卡尔空间轨迹规划直接处理机器人末端执行器在工作空间中的位置和姿态变化,涉及以下内容: 工作空间:机器人可到达的所有三维空间点的集合。 路径规划:在工作空间中找到一条从起点到终点的无碰撞路径。 障碍物表示:采用二维或三维网格、Voronoi 图、Octree 等数据结构表示工作空间中的障碍物。 轨迹生成:通过样条曲线、直线插值等方法生成平滑路径。 实时更新:在规划过程中实时检测并避开新出现的障碍物。 在 MATLAB 中实现上述规划方法,可以借助其内置函数和工具箱: 优化工具箱:用于解决运动学逆解和路径规划中的优化问题。 Simulink:可视化建模环境,适合构建和仿真复杂的控制系统。 ODE 求解器:如 ode45,用于求解机器人动力学方程和轨迹执行过程中的运动学问题。 在实际应用中,通常会结合关节空间和笛卡尔空间的规划方法。先在关节空间生成平滑轨迹,再通过运动学正解将关节轨迹转换为笛卡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值