一、struts概述

  1、struts2框架应用在javaee三层结构中web层框架

  2、struts2框架在struts1和webwork基础之上发展全新的框架

二、struts2环境搭建

  1、导包

    

  2、创建action

/*
* 创建action有3种方式
* 方式一:创建普通类,不继承任何类,不现实任何接口
* 方式二:继承ActionSupport类(开发一般使用这种方式)
* 方式三:实现Action接口
*/ import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport; //方式一
public class Aaction { /* 1、每次发访问servlet时候,都会执行service方法
* 2、访问action时,默认执行execute方法
*/
public String execute(){
    /*action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置
      - 把方法写成void
      - 让返回值,返回 ”none”*/
return "ok"; }
} /*方式二
public class Baction extends ActionSupport { public String execute(){ return NONE; }
}
*/ /*
* 方式三 * public class Caction implements Action { @Override
public String execute() throws Exception { return SUCCESS;
} } */

  3、配置访问路径

    

第三步 配置action类访问路径

  (1)创建struts2核心配置文件

      - 核心配置文件名称和位置是固定的

      - 位置必须在src下面,名称 struts.xml

  (2)引入dtd约束

  

   (3)配置action

<?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>
<!-- package标签:类似与包,区别不同的action,必须首先写package
在package里面才能配置action
package属性:
name属性:属性值跟功能本身没有关系,可以任意写
在一个配置文件中,可以写多个package标签,name的属性值不能相同
extends属性:固定值: struts-default
写了这个属性后,在package里面配置的类具有action功能
namespace属性:属性值与action标签里面的name属性值构成访问路
-->
<package name="hello" extends="struts-default" namespace="/">
<!-- action标签配置action的访问路径
name属性:属性值可以任意写,属性值与package标签里面的namespace标签的属性值构成访问路径
在package标签里面可以写多个action标签,但是action的name属性之不能相同
class属性: action类的全路径
method属性:不写表示默认执行execute方法,要执行其他方法时,直接写其他方法的方法名
- 比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法
- 让action里面多个方法执行,使用method进行配置
-->
<action name="hello">
<!-- result标签:根据action的返回值,配置到不同的路径里面
name属性:和方法返回值一样
type属性:配置如何到路径中去(2种方式:转发或者重定向)
默认转换
-->
<result></result>
</action>
</package>
</struts>

   (4)配置过滤器(在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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>struts2</display-name> <!--Struts2过滤器-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>
</web-app>

  

Struts2(1)的更多相关文章

  1. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  2. 菜鸟学Struts2——Interceptors

    昨天学习Struts2的Convention plugin,今天利用Convention plugin进行Interceptor学习,虽然是使用Convention plugin进行零配置开发,这只是 ...

  3. 菜鸟学Struts2——零配置(Convention )

    又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...

  4. 菜鸟学Struts2——Results

    在对Struts2的Action学习之后,对Struts2的Result进行学习.主要对Struts2文档Guides中的Results分支进行学习,如下图: 1.Result Types(Resul ...

  5. 菜鸟学Struts2——Actions

    在对Struts2的工作原理学习之后,对Struts2的Action进行学习.主要对Struts2文档Guides中的Action分支进行学习,如下图: 1.Model Driven(模型驱动) St ...

  6. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  7. 13、零配置Struts2开发

    Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ...

  8. 12、Struts2表单重复提交

    什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...

  9. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  10. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

随机推荐

  1. [转载]mvc:view-controller

    1.重定向 ? 1 <mvc:view-controller path="/" view-name="redirect:/admin/index"/> ...

  2. zabbix-2.4.8-1添加MySQL状态监控

    1.安装zabbix-agentyum -y install zabbix-2.4.8-1.el6.x86_64.rpm zabbix-agent-2.4.8-1.el6.x86_64.rpm 安装以 ...

  3. Efficiency in Shell

    最近在写一个shell脚本, 由于该脚本对效率有较高的要求, 所以查阅了一些文章. 感觉这篇文章写得确实不错, 文章中的例子,确实很棒! 所 以我把他们提取出来: @1:实例: 需求:计算1到1000 ...

  4. Android:日常学习笔记(8)———探究UI开发(3)

    Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...

  5. Linux下运行java项目

    最近初步接触了linux,感觉很有新鲜感.之前在windows下干过的事情也便想到在linux环境下实现一下.正好手头在编java,就想既然java可以在windows的DOS操作下运行,是不是也可以 ...

  6. 0530JavaScript基础2

    常用内置对象 所谓内置对象就是ECMAScript提供出来的一些对象,我们知道对象都是有相应的属性和方法 数组Array(部分相当于列表) 1.数组的创建方式 var colors = ['red', ...

  7. Django---media静态文件的配置&全局变量

    media 静态文件配置 static 静态文件多用于存放用于渲染前端页面的相关数据,media用于存放客户上传或其他的文件 setting.py 中加入路径 MEDIA_ROOT = ( os.pa ...

  8. mini2440移植uboot 2014.04(五)

    代码上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 前几篇博文: <mini2440移植uboot 2014.04 ...

  9. 关于在windows命令提示符cmd下运行Java程序的问题

    1. win+R出现cmd运行窗口,输入Java源码文件名运行时,错误: 找不到或无法加载主类... 问题背景:我已经配置好了Java环境(安装路径PATH,JAVA_HOME已装好,cmd运行jav ...

  10. DOCKER 简单操作

    docker ps -a 列出所有镜像 docker start docder_name dcoker start docker_id 运行某个镜像 docker restart docker_nam ...