社区
Web 开发
帖子详情
菜鸟求:struts2中的package与namespace的区别
上山浦鱼
2011-11-04 11:54:08
如题,package 与 namespace 的区别是什么?最好的例子。
分少,不要见怪。
...全文
715
11
打赏
收藏
菜鸟求:struts2中的package与namespace的区别
如题,package 与 namespace 的区别是什么?最好的例子。 分少,不要见怪。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Zeus
2011-11-05
打赏
举报
回复
namespace是设置访问路径的,
package就是个包名。
crazywolf
2011-11-05
打赏
举报
回复
package 就像一个文件夹,它下面包含什么不受其它的影响,namespace是访问时的路径!
a_mean
2011-11-05
打赏
举报
回复
struts2中是采用<package>元素来管理Action的,package的作用类似于java中的类包。
它管理一组业务功能相关的action。而namespace属性可以不配置,主要是为了避免package中的
action重名,还有就是当有namespace时,可以减少配置的书写量,因为相同路径的action请求可以放置在同一个名称空间下,这样就不用每次都写出名称空间值所代表的路径。
最后还说一点,在页面跳转时,struts2自动寻找匹配的action,namespace的优先权大于package.
多云转大雨
2011-11-05
打赏
举报
回复
namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/ ,或者/xxx,或者/xxx/yyy,对应的action访问路径
为/index.action,/xxx/index.action,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
package用来区分重名的情况
namespace必须以/ 开头
云鹏
2011-11-05
打赏
举报
回复
namespace是C#里面的命名空间,跟java里面的package是一个意思,都是相当于一个文件夹,区别就是一个是c#的,一个是java的...
Lucky_BW
2011-11-05
打赏
举报
回复
[Quote=引用 5 楼 pkh198504 的回复:]
<package name="pay" extends="struts-default">
为什么 /pay/queryMyPay.action?userid=1 这个也是正确的?(事实上我程序能找到相应的ACTION)
我在package 里面没有写 namespace .
我改成 /queryMyPay.action?userid=1 ,也可能执行。
为什么呢?
[/Quote]
2L的已经说明了,之于你说的这个问题,它首先会在namespace为pay下搜索,找不到就会向上级搜索。所以你这样写也是能找到
annan211
2011-11-05
打赏
举报
回复
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="test1" extends="struts-default" >
<global-results >
<result name="global-exception">/global-exception.jsp</result>
</global-results>
<global-exception-mappings >
<exception-mapping result="global-exception" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
<action name="login" class="cn.cstp.org.action.LoginAction">
<result name="success" type="redirectAction" >${nextAction}</result>
<result name="exception" type="dispatcher" >/exception.jsp</result>
<exception-mapping result="exception" exception="java.sql.SQLException"></exception-mapping>
</action>
<action name="admin" class="cn.cstp.org.action.AdminAction">
<result>/admin.jsp</result>
</action>
<action name="user" class="cn.cstp.org.action.UserAction">
<result>/user.jsp</result>
</action>
</package>
</struts>
好了 这是我的一个项目中的一个struts 配置文件 你可以在里面看到有<package>但是没有namespace 这就是说明我的这个配置文件下面的namespace是空 等同<package name="test1" extends="struts-default" namespace=""> 我访问这个配置文件里面的资源时根本不用去问 <package name="test1">这里面的name是哪家大佛 我只关心namespace是否为空就行了 如果为空 那么我访问package里面的资源的时候直接跳过namespace 如果不为空 那么我在访问 比如里面的Action时候就得加上 比如我访问
<action name="admin" class="cn.cstp.org.action.AdminAction">
<result>/admin.jsp</result>
</action>里面的action http://localhost:8080/progectname/admin.action
如果namespace存在并且为 space 则访问路径 http://localhost:8080/progectname/space/admin.action
不明白再问我
上山浦鱼
2011-11-05
打赏
举报
回复
[Quote=引用 1 楼 ithink_88 的回复:]
namespace是C#里面的命名空间,跟java里面的package是一个意思,都是相当于一个文件夹,区别就是一个是c#的,一个是java的...
[/Quote]
哦,这样啊。
但我说的是 struts2中的,也就是 struts.xml配置文件中的
上山浦鱼
2011-11-05
打赏
举报
回复
<package name="pay" extends="struts-default">
为什么 /pay/queryMyPay.action?userid=1 这个也是正确的?(事实上我程序能找到相应的ACTION)
我在package 里面没有写 namespace .
我改成 /queryMyPay.action?userid=1 ,也可能执行。
为什么呢?
dracularking
2011-11-05
打赏
举报
回复
namespace这种叫法还是挺霸气的
上山浦鱼
2011-11-05
打赏
举报
回复
好。大概清楚了。
ThinkPHP5
菜鸟
必备之:微信扫码支付
微信支付是我们在做项目和网站或商城的时候经常遇到的一个问题,我从接触到熟悉,一步一个坑走过来,花费许多时间和精力,为了不让小伙伴们走弯路,特此录制本课程,这套课程是一个简易的购物微信支付的全过程,从生成订单到支付完成,再到支付页面的跳转整个过程。目的就是让大家彻底明白微信支付的全过程,也让大家可以把学到的立刻用到项目
中
。
【
菜鸟
学框架】——
Struts2
快速上手
本文主要讲解如何快速上手利用
Struts2
完成业务处理,如有不对之处欢迎各位拍砖,小编在此提前谢过各位啦。 1.1下载
struts2
的开发包
Struts2
的官网:https://struts.apache.org/在官网
中
下载所需要的
struts2
版本。下载好之后,进行解压即可。 1.2
Struts2
包解压后的目录结构 1.3
Struts2
开发所需的基本jar
学习笔记1:Struts 2框架的搭建
技术这个东西就是一个积累的过程,从现在其我要通过点滴的学习和积累,努力从IT小
菜鸟
成长为一个合格的计算机技术人员。废话不多说,前几天学习了Struts,Spring和Spring JDBC搭建框架,在这里进行记录,为需要的人还有自己提供一点方便。Struts 是第一步,可以通过web.xml,struts.xml等文件的配置,完成网站的框架的配置,和网页之间在不同条件下的切换。其实,在框架
中
,配置文
菜鸟
学
Struts2
——零配置(Convention )
又是周末,继续
Struts2
的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Convention支持零配置进行开发,也就是约定约定优于配置的方式。 (1)环境准备 使用Convention Plugin进行开发,需要引入
struts2
-convention-...
菜鸟
学SSH——
Struts2
拦截器
什么是拦截器 拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过)、转换器,校验等。 拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action
中
可重用的部分的方式。 说到拦截器有一...
Web 开发
81,092
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章