struts2学习笔记 -- day02 struts2主配置文件详解
来源:互联网 发布:淘宝食品备案流程图 编辑:程序博客网 时间:2024/06/06 06:29
一、入门案例
1、编写Action动作类
package cn.itcast.web.action;/** * 用于处理请求的类 * * 在struts2中把用于处理请求类都称之为:动作类 * */public class HelloAction {/** * 用于处理请求的方法 * * 把动作类中用于处理请求的方法都叫做:动作方法 * * 动作方法有编写规范: * 访问修饰符都是public * 返回值必须是String类型的 * 方法不能有参数 * @return */public String sayHello(){System.out.println(this);System.out.println("HelloAction中的sayHello方法执行了。。。。");return "success";}}
2、配置struts.xml配置文件
<package name="p1" extends="struts-default"><action name="hello" class="cn.itcast.web.action.HelloAction" method="sayHello"><result name="success" type="dispatcher">/success.jsp</result></action></package>
3、编写jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struts2的入门案例</title></head><body><%--struts2框架它默认会拦截以.action为后缀的请求,或者是没有任何后缀的请求 --%><a href="${pageContext.request.contextPath}/hello.action">访问struts2的入门案例.action</a><hr/><a href="${pageContext.request.contextPath}/hello">访问struts2的入门案例</a></body></html>
二、struts2的执行流程
三、struts2中的配置文件
1、struts2的 6 个配置文件
default.properties、struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml
加载时机是:在项目启动时就开始加载。
加载顺序:按照上述顺序加载。
注意:遇到相同的配置信息时,后加载的会覆盖先加载的
2、default.properties配置文件
注意:default.properties中的内容坚决不允许改动
(1)、位置:
3、struts-default.xml
注意:该配置文件内容不能修改
位置:
4、struts-plugin.xml
位置:插件包jar包中,没有导插件包时不存在
5、struts.xml 和 struts.properties
位置都在应用中,用于配置我们自定义的参数,推荐使用struts.xml进行配置
6、web.xml
作用:给过滤器配置参数
四、struts.xml中标签详解
1、constant标签
(1)、作用
配置struts2的常量
键值对形式,key、value
<!-- 开启开发者模式 --><constant name="struts.devMode" value="true"></constant>
(2)、常用的常量
2、package标签
<!-- package标签详解:作用:建立一个包,把我们的动作配置按照面向对象的思想来管理。属性:name:指定包的名称。必须写,必须唯一。extends:指定当前包的父包。子包自动具备父包的配置。我们的包一般都需要继承struts-default包。该包中配置着struts2的核心,如果不继承该包,则不能使用struts2的核心。struts-default包在struts-default.xml配置文件中定义着。abstract:把当前包声明为抽象包。抽象包就是用来被继承的。里面定义的公共配置。 只有没有action标签的包,才能声明为抽象包。namespace:指定当前包的名称空间。当包上指定了名称空间之后,访问URL就变成了:url = 名称空间+action标签的name取值它的作用就是把访问URL按照模块化来管理。名称空间的写法:必须以/开头后面的第一个字符必须是字母。例如:/n /n1 /namespace1 访问URL就变成了:/n1/hello体现模块化管理URL的例子:名称空间是:/user访问URL:/user/addUser.action /user/updateUser.action.....当我们不指定名称空间时,它有默认值:默认值是:""--><package name="myDefualt" extends="struts-default" abstract="true"> <!-- 此处定义的就是当前项目中的公共配置 --></package><package name="p1" extends="myDefualt" namespace="/n1"><action name="hello" class="cn.itcast.web.action.HelloAction" method="sayHello"><result name="success" type="dispatcher">/success.jsp</result></action></package>
3、action标签
<package name="p1" extends="struts-default"><!-- action标签详解:作用:建立动作名称,动作类和动作方法的对应关系。属性:name:指定动作名称。它不能重复class:指定动作类的全限定类名。method:指定动作方法名称。创建动作类的三种方式:第一种方式:无侵入式的创建实际开发中不常用例子:HelloAction。它的特点就是:没有任何struts2的代码体现。第二种方式:实现Action接口的方式实际开发中用的也不多例子:Hello2Action它的特点就是:Action接口中定义了一些常量,还是没有一些核心内容定义。默认动作方法:execute方法。当我们执行此方法时,可以不指定method属性第三种方式:继承ActionSupport实际开发中采用的方式例子:Hello3Action默认动作类:ActionSuppor是默认动作类--><action name="hello" class="cn.itcast.web.action.HelloAction" method="sayHello"><result name="success" type="dispatcher">/success.jsp</result></action></package><!-- 使用通配符来配置 --><package name="user" extends="struts-default"><action name="*" class="cn.itcast.web.action.UserAction" method="{1}"><result name="success" type="dispatcher">/success.jsp</result></action></package><!-- 升级通配符 --><package name="user" extends="struts-default"><action name="*_*" class="cn.itcast.web.action.{2}Action" method="{1}{2}"><result name="success" type="dispatcher">/success.jsp</result></action></package>
动态方法调用
struts.xml中:
<!-- 开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation" value="true"></constant><package name="user" extends="struts-default"><action name="user" class="com.itheima.web.action.UserAction" ><result name="success">/success.jsp</result></action></package>
jsp页面中:
<a href="${pageContext.request.contextPath}/user!addUser.action">添加用户</a><a href="${pageContext.request.contextPath}/user!updateUser.action">修改用户</a><a href="${pageContext.request.contextPath}/user!deleteUser.action">删除用户</a><a href="${pageContext.request.contextPath}/user!findUser.action">查询用户</a>
4、result标签
作用:配置结果视图的地址
<action name="demo1" class="cn.itcast.web.action.Demo1Action" method="demo1"><!-- result标签:作用:配置结果视图的地址。属性: name:用于和动作方法的返回值比较,当一致时前往指定的位置。 type:用何种方式前往(请求转发,重定向) 常用的取值: dispatcher:请求转发到一个指定jsp页面(默认值) redirect:重定向到一个指定的jsp页面或者是一个action redirectAction:重定向到一个指定的action--><result name="login">/success.jsp</result><result name="error" type="redirect">/error.jsp</result><result name="findAll" type="redirect">findAllCust</result><result name="findAll" type="redirectAction">findAllCust</result></action>
五、创建动作类的三种方式
1、无侵入式
特点:没有任何struts2代码的体现,实际开发中不常用
public class HelloAction {public String sayHello(){System.out.println(this);System.out.println("HelloAction中的sayHello方法执行了。。。。");return "success";}}
2、实现Action接口
特点:Action接口中定义了一些常量,还是没有一些核心内容定义。
默认的动作方法:execute方法。当我们执行此方法时,可以不指定method属性
import com.opensymphony.xwork2.Action;public class Hello2Action implements Action {@Overridepublic String execute() throws Exception {System.out.println("Hello2Action的execute方法执行了");return ERROR;}}
3、继承ActionSupport方式
import com.opensymphony.xwork2.ActionSupport;public class Hello3Action extends ActionSupport {}
阅读全文
0 0
- struts2学习笔记 -- day02 struts2主配置文件详解
- struts2 day02学习笔记
- Struts2学习笔记(一) Struts2配置文件的配置
- Struts2学习笔记01----初识struts2配置文件和相关基础知识
- Struts2 配置文件详解
- struts2配置文件详解
- struts2属性配置文件详解
- struts2属性配置文件详解
- Struts2配置文件详解
- Struts2配置文件详解
- struts2 配置文件详解
- struts2配置文件详解
- Struts2配置文件详解
- struts2配置文件详解
- struts2配置文件详解
- Struts2配置文件 result详解
- struts2配置文件详解
- Struts2 配置文件 详解
- 配置sublime text 3简要步骤
- 谁将引领新一代视频编码标准:HEVC、AVS2、AV1性能对比报告
- 1085. Perfect Sequence (25)
- MongoDB菜鸟入门(一):概念与增删改查、建立索引
- python调用线程
- struts2学习笔记 -- day02 struts2主配置文件详解
- js对象的深拷贝和浅拷贝
- 下载spring网站的相关文档pdf版本
- 基于docker的GPU测试方法
- 编程思想——第二章
- QT笔记(1)——信号&槽机制,事件
- 积性函数的性质及证明 + 线性筛
- MySql卸载重新安装出现Start service没有响应的解决办法(64位)
- struts2学习笔记 -- day03 struts2整合hibernate环境搭建