Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是webapp的,然后去找服务器上部署的该webapp,再去看这个webapp中的web.xml文件(在web-inf目录下),web.xml中一般会配置有一个filter,是prepareAndExcuteStruts这个类,然后到src目录下找struts.xml文件,在struts.xml中配置有namespace="/",这个就是xx.jsp前面的/  有这个就会在这个配置文件中寻找名为xx的action。找到这个对应的result的jsp文件反馈给客户端。这样就达到了请求和视图分离的目的,想要改变某个请求对应的视图,直接修改配置文件中的内容就好了。

namesapce可以“/”则访问路径是/index

也可以不写,默认不写namespace=""这样表示接受所有的action

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

  <action name="login"  class="xx.xx.xx"  method="add">这里的class也可以不进行配置则此时使用的是默认的action  struts中的actionSupport类

    <result>success.jsp</result>

    <result name="default">default.jsp</result>"

  </action> 

</package>

如这个struts.xml的配置,当访问的时候就要写成http:localhost/8080:3306/xxwebapp/user/login.action

package主要是防止不同包中有相同的模块命名,这样会有冲突,所以使用package来进行区分。因为namespace不是/而是/user,所以在地址栏中需要加上一个/user/login

这个package下的name就是说我们想指定那个请求来执行处理该请求。class是指定的类,这个类可以是任何一个普通的类,只要里面有Public String excute(){ return "default"}这样的方法就ok了。不过一般情况下我们会继承ActionSupport或者是实现Action接口。

Action接口是Struts2导入jar包中包含的,在xwork...中的一个接口。因为ActionSupport中有很多已经封装好的方法,所以我们只用继承ActionSupport就可以了,里面有getText,validate验证等很多实用的方法。最后的method=add是说访问这个login.action会找这个类里面的add方法。并返回对应的执行结果。给到对应的string对应的视图这样就可以使用一个package来定义多个action处理不同的请求了。

Strusts2的更多相关文章

  1. 记录一下Maven整合spring,hibernate,strusts2我程序中出的bug

    action类如下 package com.itheima.movenweb.action; import java.util.List; import org.apache.struts2.Serv ...

  2. Strusts2笔记9--防止表单重复提交和注解开发

    防止表单重复提交: 用户可能由于各种原因,对表单进行重复提交.Struts2中使用令牌机制防止表单自动提交.以下引用自北京动力节点:

  3. Strusts2笔记8--文件的上传和下载

    文件的和上传和下载: (1)文件的上传: Struts是通过拦截器实现文件上传的,而默认拦截器栈中包含了文件上传拦截器,故表单通过Struts2可直接将文件上传,其底层是通过apache的common ...

  4. Strusts2笔记7--国际化

    国际化: 国际化是指,使程序在不做任何修改的情况下,就可以使用在不同的语言环境中.国际化在一般性项目中是不常用的.在编程中简称 i18n. 国际化是通过读取资源文件的形式实现的.资源文件的定义与注册, ...

  5. Strusts2笔记6--拦截器

    拦截器: Struts2的大多数核心功能都是通过拦截器实现的.拦截器之所以称之为“拦截器”,是因为它可以在执行Action之前或之后拦截下用户请求,执行一些操作,以增强Action方法的功能. Str ...

  6. Strusts2笔记5--数据验证

    数据验证: 输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证主要是通过Java代码进行验证. 分为以下四种情况: (1)手工编写代码,对Action ...

  7. Strusts2笔记4--类型转换器

    类型转换器: Struts2默认情况下可以将表单中输入的文本数据转换为相应的基本数据类型.这个功能的实现,主要是由于Struts2内置了类型转换器.这些转换器在struts-default.xml中可 ...

  8. 搭建struts2框架

    struts是一个经典的MVC模式拦截器比过滤器拦截的力度更大 搭建struts2框架1.引入lib包 9个(2.3版本的)common-fileupload;common-io;common-lan ...

  9. sitemesh学习笔记(3)

    前两篇博客浅谈了一下sitemesh3.0和2.4的区别和简单用法,今天我做了一个结合sturts2的sitemesh构架,由于strusts2只能用sitemesh2.x的版本,与3.0目前还不能兼 ...

随机推荐

  1. CentOS7 PHP+Redis实现Session共享

    先yum简单的安装redis wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/epel-7.repo ...

  2. gitlab-ci.xml:script config should be a string or an array of strings

    The following command in a job script: STATUS_ID=$(grep -Eo "Status Code [0-9]+: Done" som ...

  3. (4)Linux常用基本操作

    1.ping和traceroute 指定源IP ping:ping -I 源 目的    #I为大写的i 带源地址路由tracert:traceroute -d <目标地址> -s < ...

  4. Spark2.0学习(三)--------核心API

    Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...

  5. 微信x5内核很鸡贼啊

    最近在写一个支付项目,然后要打通微信和支付宝支付,本来后端联调的时候直接调用weixin://wxpay/bizpayurl?XXXX接口就行的,完全走着通,然后到项目验收了就炸了,点不进去了,最后改 ...

  6. html模板导出pdf文件

    package com.crc.commonreport.util; import java.awt.Insets; import java.io.ByteArrayOutputStream; imp ...

  7. docker-3 Apache

    docker 安装 Apache 环境 docker pull httpd 文件创建连接(这样就可以不用发布了,两个文件夹会自动同步文件) ln -s /root/jenkins_home/works ...

  8. VUEX报 “was assigned to but it has no setter”

    如果有当前的变量(VUEX声名的)会发生改变的(change),刚绑定的值需要在data () 内进行声明 一个新的变量进行处理.

  9. web自动化上传附件 2

    当我们进行某一项web自动化脚本编写时,有上传附件操作,点击附件直接打开了windows窗口,而有的点击添加附件打开一个小窗体,再点击‘浏览’才打开windows窗口, 中间多了这么一个小窗体的操作, ...

  10. RIDE安装操作

    转载参考https://www.cnblogs.com/Ming8006/p/4998492.html 一.python安装 1.访问Python官网:https://www.python.org/  ...