学习Struts2的个人疑惑及问题解决
刚开始学习SSH框架中Struts2时,个人疑惑以及一些问题总结一下。
1、package节点namespace属性值决定访问路径问题
namespace不写或写namespace=""代表含义都一样
namespace="/"表示根命名空间,只能处理“项目名/actionName.action”的URl请求。
假设有个name="index"的action 即名为index.action,项目名为p1。namespace值及访问路径如下:
|
Namespace值 |
访问路径 |
|
空或"" |
p1/index.action或p1/x/index.action等 |
|
/ |
p1/index.action (只能这一种) |
|
/x |
p1/x/index.action |
|
/x/y |
p1/x/y/index.action |
如下struts.xml配置
<struts>
<constant name="struts.devMode" value="true" />
<package name="front" extends="struts-default" namespace = "/front">
<action name="index">
<result>/Namespace.jsp</result>
</action>
</package>
<package name="main" extends="struts-default" namespace="" >
<action name="index">
<result>/Namespace.jsp</result>
</action>
</package>
</struts>
namespace是什么?想访问的action前面就应该加上什么,比如这里就是/front/index.action
namespace等于空,意味着:只要在url敲index.action不管在哪里敲,路径多么深,只要最后是“index.action”就可以访问这个action。
所以namespace意味着:只要找到一个index.action,没有找到精确的对应的namespace,全部都交给namespace为空的这个package去处理,所以这个package囊括了其他所有package处理不了的action。
资料参考:
https://zhidao.baidu.com/question/331902753.html
http://blog.csdn.net/menghuannvxia/article/details/47169991 这个网址对于namespace=""和namespace="/"的描述有错误。
http://www.cnblogs.com/hongten/archive/2011/07/29/2121450.html
2、action下result节点name属性值命名方式问题
个人理解:系统根据action节点中的method属性值对应的方法中的返回结果,在result中查找相应结果的映射,转向指定界面。所以result中name值只要和method属性值对应的方法中的返回值相同即可。
3、src下的类什么时候加载
用户提交表单时 会有一个action属性,根据action值,在struts.xml中查找相应name的action配置,根据配置找到相应的类,执行method属性对应的方法,根据方法返回值,在result中查找相应结果的映射,转向指定界面。
4、struts.xml配置及action配置
action配置中,配置项的默认值:
1) 如果没有指定Action的class,默认值为ActionSupport。
2) 如果没有指定Action的method属性,默认值为execute()方法。
3) 如果没有指定result的name属性,默认值为”success”
资料参考:
http://www.cnblogs.com/kay/archive/2007/11/28/976120.html
http://blog.csdn.net/ldl420783321/article/details/7546607
欢迎评论,批评指正。
学习Struts2的个人疑惑及问题解决的更多相关文章
- 学习struts2
有部分内容转载牛人的博客: http://blog.csdn.net/hudie1234567/article/details/6730481 http://blog.csdn.net/lishuan ...
- 学习struts2及MVC
1.MVC模式基础 1.1.MVC模式简介 MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而达到更好的开发和维护效率.在MVC模式中 ...
- 学习Struts2的第一个应用步骤
---恢复内容开始--- 一.在官网 http://struts.apache.org/下载struts-2.3.31-all 1. 打开struts-2.3.31-all,将struts-2.3. ...
- java学习中的一些疑惑解答
一.java中的枚举类型: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如星期一到星期日七个数据元素 ...
- struts2 jsp 传参 NullPointerException问题解决
今天遇到了一个问题,那就是jsp给struts2传递参数的时候,总是空指针异常,开始我以为是可能是哪里写的不对,但是经过仔细检查后,没有发现什么异常的地方,后来我发现我的po类里面没有空构造,只有一个 ...
- 深入学习Struts2
本部分主要介绍struts.xml的常用配置. 1.1. 包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管理Action和拦截器等.每个包就是多个A ...
- 框架学习Struts2之HelloWord
一.概述 Struts2是基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图之间的数据交互.Str ...
- SSH框架学习------struts2前后台传值(二)
struts2的Action类一般都会继承(extends)ActionSupport类(Action类,即实现action的类)1.前传后:jsp里<input type="text ...
- SSH框架学习------struts2(一)
1.总的目录 2.所有程序 1)index.jsp很简单 <%@ page language="java" contentType="text/html; char ...
随机推荐
- 关于Stuck Archiver的疑问
客户使用crsctl stat res -t命令去查看RAC集群状态时,发现异常,知晓Stuck Archiver代表归档满,问我们为什么RAC是同一个库,只有实例1显示Stuck Archiver, ...
- webpack使用七
产品阶段的构建 目前为止,我们已经使用webpack构建了一个完整的开发环境.但是在产品阶段,可能还需要对打包的文件进行额外的处理,比如说优化,压缩,缓存以及分离CSS和JS. 对于复杂的项目来说,需 ...
- python基础-abstractmethod、__属性、property、setter、deleter、classmethod、staticmethod
python基础-abstractmethod.__属性.property.setter.deleter.classmethod.staticmethod
- leetCodelinked-list-cycle-ii找到链表的环
题目 Given a linked list, return the node where the cycle begins. If there is no cycle, return null. N ...
- <2>基本表达式和语句
1.基本表达式 1: =, +, -, *, /, 赋值,加减剩除; lua 没有 c/c++的缩写表达式 += -= *=, ++, --; 2: () 改变运算的优先级; 3: 字符串对象加法.. ...
- linux基本格式和常用目录命令一
1: cd 绝对路径 2: cd 相对路径 名字开头 ./开头 ../开头 3: cd ~: 去到当前用户所在目录; 4: pwd获取当前的路径的绝对路径; 5: ls 与ls -l 6: cat 操 ...
- STL(标准模板库)基本概念
一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...
- hdu5067
题意 给了一个n*m的网格 然后一台挖掘机从(0,0) 这个位置出发,收集完全部的石头回到(0,0)挖掘机可以有无限的载重 用旅行商处理 dp[k][i] 表示在这个集合中最后到达i的最小距离,用集合 ...
- hdu2295DLX重复覆盖+二分
题目是说 给了n个城市 m个雷达 你只能选择其中的k个雷达进行使用 你可以设置每个雷达的半径,最后使得所有城市都被覆盖,要求雷达的半径尽可能的小(所有雷达的半径是一样的) 二分最小半径,然后每次重新建 ...
- Python+OpenCV图像处理(十三)—— Canny边缘检测
简介: 1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法. 2.Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: 好的检测- ...