Struts2基础01

1.Struts2概述

  1. struts2框架应用 javaee三层结构中web层框架
  2. struts2框架在 struts1和 webwork基础之上发展全新的框架
  3. struts2解决间题:

4. structs2版本

5. web层常见框架 :springMVC

2.Structs2框架入门

1.导入jar包

Maven方式:

pom.xml配置依赖:


<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.apache.struts</groupId>

<artifactId>struts2-core</artifactId>

<version>2.5.16</version>

</dependency>

<dependency>

<groupId>org.apache.struts.xwork</groupId>

<artifactId>xwork-core</artifactId>

<version>2.3.34</version>

</dependency>

<dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.2</version>

</dependency>

2.创建action

3.配置action类访问路径

1).配置Struts2核心配置文件

名称:src下  位置: struts.xml( 固定 )

2).引入dtd约束


<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"

"http://struts.apache.org/dtds/struts-2.5.dtd">

3). 配置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>Struct2day1</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

</filter-class><!-- 低版本对应的class可能有细微差别 -->

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

4.Struts2基本流程

5.Struts2配置

Struts2核心配置文件 -> struts.xml

    结构:

<package>

<action>

<result> </result>

</action>

</package>

1) package 标签

类似于代码中的包,用于区分不同的action

三个属性:

      • name : name属性值和功能本身没有关系,在一个配置文件中可以写多个package标签,name属性值是不能相同的
      • extends:属性值是固定的 ‘ struts-default ’ ;写了合格属性后,在package里配置的类具有action功能
      • namespace  :name属性值要和action中的name属性值构成访问路径    默认值‘/‘

2)action标签

action标签配置action访问路径

action标签属性:

      • name : name属性值要和action中的name属性值构成访问路径,package里可以有多个action,但是他们的name值不能相同
      • class : action全路径: 包名+类名
      • method : 比如在 action里面默认执行的方法 execute方法,但是在 action里面写其他的方法,让 action里面多个方法执行,使用 method进行配置

3)result标签

根据action返回值,配置到不同页面中去

result标签属性

      • name :  和方法返回值一样
      • type : 配置如何到页面中去(转发、重定向) 默认转发

4)常量配置

6.分模块开发

单独写配置文件,把配置文件引入到核心配置文件中

<include file="per/wzy/Action/hello.xml"></include> <!--per/wzy/Action => 包名 -->

7.Action编写方式

    • 第一种 : 创建普通类 ,不继承任何类、不实现任何接口
    • 第二种 : 创建类 ,实现接口Action
    • 第三种 : 创建类 , 继承类ActionSupport  (常用)

8.访问Action的方法

访问action有三种方式

    • 一:在action中添加method属性,填写要访问的方法    (缺陷:每个action都需要配置,若action里有多个方法需要执行,则需要配置大量action)

<action name="hello" class = "per.wzy.Action.Hello" method="add">

<!-- 配置方法的返回值到不同的页面 -->

<!--  <result name ="ok">/Hello.jsp</result>-->

</action>

    • 二:使用通配符实现,在action中的name属性中添加 * 通配符,匹配任意字符 {第几个*} 代表*替代的值

注:struts2 2.5后禁用通配符,需要在package 中添加 strict-method-invocation="false"


<struts>

<package name="" extends="struts-default" strict-method-invocation="false">

<action name="stu_*" class="per.wzy.Action.Hello" method="{1}">

<allowed-methods></allowed-methods>

</action>

</package>

</struts>

访问http://localhost:8080/Struct2day1/stu_add和http://localhost:8080/Struct2day1/stu_del分别执行add()方法和del()方法

    • 三:动态访问实现

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/local-wzy/p/11229571.html

时间: 2024-10-13 05:20:47

Struts2基础01的相关文章

Struts2基础学习总结

Struts2基础学习总结(一)---入门 Struts 2: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互.Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大.Struts2以WebWork为核心,采用拦

安卓基础01

安卓基础01 SDK System images 这是在创建模拟器时需要的system image,也就是在创建模拟器时CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/system-images文件夹下即可, 如果没有 system-images目录就先 创建此文件夹,然后打开SDK Manager,打开Tools(工 具)菜单选择Options(选项)菜单项打开Android SDK Manager Setting对话框,点击Clear C

iOS基础 01 构建HelloWorld,剖析并真机测试

iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心情,继续以HelloWorld去认识这世界上更多的东西. 本篇以HelloWorld作为切入点,向大家系统介绍什么事iOS应用以及如何使用Xcode创建iOS应用. 目录: 1. 创建HelloWorld工程 1.1. 设计界面 1.2. 真机测试 2. Xcode中的iOS工程模板 2.1. Ap

C#面向对象基础01

面向对象不是取代面向过程的类.对象."人"是类,"张三"是人这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例.类就像int,对象就像10.字段field(和某个对象相关的变量),字段就是类的状态.人这个 类有姓名.年龄.身高等字段.类不占内存,对象才占内存.方法:方法就是累能够执行的动作,比如问好.吃饭等.类的继承,类之间可以有继承关系,比如电脑类可以从"电器"类继承,这样的好处是"电脑&quo

C#语言基础01

Console.WriteLine("hello"); Console.ReadKey();// 按一个按键继续执行 string s=Console.ReadLine();//用户输入文字的时候程序 是暂停的 ,用户输入玩 必点回车,把用户输入的作为返回值,声明一个string 类型的变量(容器)s,用s来放ReadLine函数返回的值. Console.WriteLine(s); /*inti1=10;int i2=20; Console.WriteLine(i1+ "+

python基础01 Hello World!

作者:徐佳 欢迎转载,也请保留这段声明.谢谢! 摘要:简单的Hello Word! python 命令行 如已经安装python,那么在linux命令行中输入 $python 将进入python.乱吼在命令行提示符>>>后面输入 print ('Hello World!') 随后在屏幕上输出: Hello World! 写一段小程序 另一个使用Python的方法,是写一个Python程序.用文本编辑器写一个.py结尾的文件,比如说hello.py 在hello.py中写入如下,并保存:

Linux基础01 学会使用命令帮助

Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题,我们需要掌握如何正确的去使用它们:在只记得部分命令关键字的场合,我们可通过man -k来搜索:需要知道某个命令的简要说明,可以使用whatis:而更详细的介绍,则可用info命令:查看命令在哪个位置,我们需要使用which:而对于命令的具体参数及使用方法,我们需要用到强大的man:下面分别介绍: 命

Struts2基础学习总结(二)

Struts2基础学习总结(二)---struts.xml参数 1.常量 使用<constant name="" value=""></constant>元素进行描述 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Strut

黑马程序员--Java基础--01基本概念

1.Java的三大技术架构 JAVAEE(Java Platform Enterprise Edition):  开发企业环境下的应用程序,主要针对web程序开发: JAVASE(Java Platform Standard Edition): 完成桌面应用程序的开发,是其他两者的基础 JAVAME(Java Platform Micro Edition): 开发电子消费产品和嵌入式设备,如手机中的程序 我对三大技术构架理解 1.三大技术是指哪三大技术呢? 答:三大技术分别指JAVAEE,JAV