Java struts2 package元素配置及实例解析
package 元素的所有属性及对应功能:
Attribute | Required | Description |
name | yes | key to for other packages to reference ---包名称,用来让别的包继承时使用不能有重复 |
extends | no | inherits package behavior of the package it extends -----当前包所要继承的父包,继承之后,当前包拥有父包中所定义的任意类、拦截器等 |
namespace | no | 用于区分包中相同的类 |
abstract | no | declares package to be abstract (no action configurations required in package)定义当前包为一个抽象的包也就是说不能有action元素在当前包中 |
例子:
假如我有以下的配置段落
<struts> <package name="p1" extends="struts-default"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> <action name="login1" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> <package name="p2" extends="struts-default" namespace="/testNameSpace"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> </struts>
说明:
a、 包p1没有定义namespace,说明p1用的是默认空间""
现在有下面的请求:
1、/工程名/login.action
------这个请求对应p1包下的action name=login
2、/工程名/testNameSpace/login.action
-----这个请求对应p2包下的action name=login
3、/工程名/testNameSpace/login1.action
----这个请求是请求p2包下的信息的,如果struts在检索了p2包下的所有action后没有检索到当前请求的login1,这时struts会检索前一个命名空间,这里是默认空间下是否有当前请求,检查发现存在login1就得到当前检索
这里我有个个人的建议:
无论你的namespace配置或者没配置,也无论配置啥样,你在写跳转的url的时候请你也把
‘/工程名/'带上,写成这样:/工程名/命名空间1/命名空间2/actionName.action这样写能保证路径的正确性,当然如果你在写跳转的时候不发晕,可以视你的配置情况加或者不加这个!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
struts1之简单mvc示例_动力节点Java学院整理
先看MVC模式流程图(其实MVC设计模式就是java中的model2.): 就像图上所标识的C层主要是Servlet层控制页面跳转,M层就是具体的业务处理逻辑,而JSP就是所谓的V层.MVC是有别于我们所说的三层,我们平常所说的三层是UI层.BLL层.DAL层,具体的区别如图: 从图上能看出来,JSP和Servlet构成了UI层,而Model层分成了BLL层和DAL层(也就是业务逻辑和数据持久层). 从理论上认清了MVC设计模式之后,下面开始动手敲一个MVC设计模式示例代码: JSP索引页面in
-
java struts2框架简介
一.Struts2简介 1.Struts2概述 Struts2是Apache发行的MVC开源框架.注意:它只是表现层(MVC)框架. M:model-----数据封装------->javabean V:view------视图----------->jsp C:control------控制器--------> struts2( filter),struts1(servlet) 2.Struts2的来历 Struts1:也是apache开发的一套mvc的开源框架.在2005年之前非
-
Struts1之url截取_动力节点Java学院整理
Struts1之url截取 先我们来对ActionServlet深层次进行分析.我们用断点的调试的方式来看底层源码.因为这个实例是post方式提交,所以将断点设置到doPost方法上. 我们debug运行程序,进入doPost里面的方法: 这个方法非常重要是ActionServlet运行的核心方法. 我们进入这个方法: 再继续进入: 我们赫然发现了这样一个方法就是processPath方法,这个方法就是截取字符串的方法.这个方法的源代码如下: /** * <p>Identify and ret
-
Java框架Struts2实现图片上传功能
Struts 2 框架为处理文件上传提供了内置支持,它使用"在 HTML 中基于表单的文件上传".当上传一个文件时,它通常会被存储在一个临时目录中,而且它们应该由 Action 类进行处理或移动到一个永久的目录,用来确保数据不丢失.服务器在恰当的位置可能有一个安全策略,它会禁止你写到除了临时目录以外的目录,而且这个目录属于你的web应用应用程序. 通过预定义的名为文件上传的拦截器,Struts 的文件上传是可能的,这个拦截器在 org.apache.struts2.intercepto
-
struts2标签总结_动力节点Java学院整理
先看一下Struts2标签的分类吧.然后分类总结一下即可. 由于控制标签用的比较多,所以放在了前边.好首先看一下控制标签吧. 一.控制标签,JSTL大家应该都使用过,其实Struts2的控制标签和那个特别像的,主要是对EL表达式满足不了的进行补充使用.这里简单看一下吧: 1. if--elseif--else,用来控制选择输出的标签: <span style="font-size:18px;"><html xmlns="http://www.w3.org/1
-
struts1之ActionServlet详解_动力节点Java学院整理
在web.xml中我们除了配置ActionServlet还配置了一些初始化参数信息,首先我们看第一个config参数,这里配置的是/WEB-INF/struts-config.xml,因为要下面传递一个这样一个配置信息,这个xml文件名是struts1标准的名字,所以这里这个初始化信息完全可以删除,如果不用这个标准名称这里就必须要在这里配置.现在我们配置的是标准名字,所以我们可以删除,这是为什么呢?这里要看ActionServlet源代码才可以. 从图片上我们能看到ActionServlet中已
-
Struts1教程之ActionMapping_动力节点Java学院整理
首先断点走出了processpath方法, 这个方法是用来截取字符串的,今天我们来看怎样获得ActionMapping的方法---processMapping. 在此之前简单说一下ActionMapping,它的源代码中可以看出,其中最重要的属性和我们的mvc小实例中的ActionMapping类似,都是有path.type还有forwardMap,主要是对应的struts-config配置文件而来,这个就是保存这个配置文件的信息到内存中. 具体的mvc小实例的ActionMapping代码如下
-
Java框架学习Struts2复选框实例代码
复选框在Web开发中使用的非常多,现在我们通过struts2的复选框标签来实现一些在开发中经常遇到的问题. 先来看看这个标签的属性: 注:listKey相当于HTML中的value属性,这个值在和后台交互时才真正是我们在后台要使用的:listValue只是内容的显示而已. 案例1 用户选择了喜欢的课程,现在要对已经选择的课程进行修改,跳转到修改界面,然后回显已经勾选的课程. 用户已选课程界面: 点击按钮后进入课程修改界面: 注:在修改界面要对用户最初的选择进行回显. 代码实现!!!! 用户已选课
-
Java struts2 package元素配置及实例解析
package 元素的所有属性及对应功能: Attribute Required Description name yes key to for other packages to reference ---包名称,用来让别的包继承时使用不能有重复 extends no inherits package behavior of the package it extends -----当前包所要继承的父包,继承之后,当前包拥有父包中所定义的任意类.拦截器等 namespace no 用于区分包中相
-
java阻塞队列实现原理及实例解析
这篇文章主要介绍了java阻塞队列实现原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 阻塞队列与普通队列的不同在于.当队列是空的时候,从队列中获取元素的操作将会被阻塞,或者当队列满时,往队列里面添加元素将会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素.同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完
-
Java Socket编程心跳包创建实例解析
1.什么是心跳包? 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包. 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线.用于检测TCP的异常断开.基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情况.所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已.代码就是每隔几分
-
Java编程通过匹配合并数据实例解析(数据预处理)
本文研究的主要是Java编程通过匹配合并数据(数据预处理)的相关内容,具体如下. 数据描述 以下程序是对如下格式的数据进行合并处理. 这个表的每一行表示用户id及用户的特征.其中,一个用户只有一个特征向量,即第一列不会重复. 这张表的第一列,表示用户的id,第二列表示用户所看的电影,第三列表示用户对电影的打分(1-13分),第四列表示用户对电影的打分,但分值范围是1-5分. 问题描述 在做数据预处理时,如何将第二张表添加上用户特征呢?其实,方法很简单,将第二张表的用户id与第一张表的用户id进行
-
Java定义形式及可变参数实例解析
这篇文章主要介绍了Java定义形式及可变参数实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java中的方法类似于面向过程程序设计中的函数,但与其不同的是,Java中的方法不能独立存在,它属于类或对象.既然方法属于类或对象,那么,方法的调用者就必须是类或对象.(当然,之后将会提到的同一个类中方法互相调用,实际上也是类或对象在作为调用者) 还是先上一段代码: package com.my.pac05; /** * @author Summ
-
Java原子变量类原理及实例解析
这篇文章主要介绍了Java原子变量类原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.原子变量类简介 为何需要原子变量类 保证线程安全是 Java 并发编程必须要解决的重要问题.Java 从原子性.可见性.有序性这三大特性入手,确保多线程的数据一致性. 确保线程安全最常见的做法是利用锁机制(Lock.sychronized)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性
-
Java反射技术详解及实例解析
前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替代了,java反射有个开源框架jOOR相信很多人都用过,不过我们还是要学习反射的基础语法,这样才能自己写出优秀的框架,当然这里所讲的反射技术,是学习Android插件化技术.Hook技术等必不可少的! 一.基本反射技术 1.1 根据一个字符串得到一个类 getClass方法 String nam
-
Java编程探索之泛型擦除实例解析
1.问题引出 源码: public static void main(String[] args) { List<Integer> a = new ArrayList<Integer>(); List<String> b = new ArrayList<String>(); System.out.println(a.getClass() == b.getClass());//结果true } 编译后L public static void main(Stri
-
Java内存模型原子性原理及实例解析
这篇文章主要介绍了Java内存模型原子性原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本文就具体来讲讲JMM是如何保证共享变量访问的原子性的. 原子性问题 原子性是指:一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行. 下面就是一段会出现原子性问题的代码: public class AtomicProblem { private static Logger logger = LoggerFactory.
-
java的package和import机制原理解析
这篇文章主要介绍了java的package和import机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在说package.import机制前我们先来了解下java的CLASSPATH. CLASSPATH顾名思义就是class的路径,当我们在系统中运行某个java程序时,它就会告诉系统在这些地方寻找这个class文件 CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 这是
随机推荐
- Hadoop Combiner使用方法详解
- javascript currentTarget对象介绍
- python发送邮件实例分享
- 可能是最通俗的一篇介绍markdown的文章
- VBE decoder
- Windows Server 2016 服务器配置指南之PHP7运行环境搭建方法
- java实现voctor按指定方式排序示例分享
- ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式
- PHP 抽象方法与抽象类abstract关键字介绍及应用
- 哲学家就餐问题中的JAVA多线程学习
- 简单理解JavaScript中的封装与继承特性
- window.js 主要包含了页面的一些操作
- 5个Android开发中比较常见的内存泄漏问题及解决办法
- javascript引用对象的方法代码
- jQuery中empty()方法用法实例
- 用JavaScript实现页面重定向功能的教程
- PureFTPd+Mysql+PHP_Manager实现虚拟用户磁盘限额的配置方法
- 深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
- 生成缩略图
- C#操作 JSON方法汇总