Struts2_2_Namespace_命名空间
2014-03-16 16:47
302 查看
2_Namespace_命名空间
下面我们讲第二个项目,就是action里面的第二个内容:namespace
Action 里面我们主要讲
Action的入门,顺带着讲了 struts的作用,就是将请求和结果视图分开,学东西一定要在战略上藐视敌人,你给我放轻松了,别太把它当回事,学完之后大家会发现,也就是一些配置操作,忘了那不很简单,回去查就可以了。但是分析和设计这种思考过程,是谁也没有办法替代你的,所以这个东西大家一定要做。
讲namespace
讲如何定义自己的Action
讲路径设置的问题
讲如何调用Action的自定义方法
讲通配符的配置
讲如何接受用户的输入(3种方式)
讲如何处理乱码
讲数据校验
讲Action中如何访问web元素
讲包含模块的配置文件
讲默认action
当大家把这个小的项目部署好之后,就可以看到 本节所讲的主要内容,
namespace决定了action的访问的路径,namespace可以不写,默认的是 “”,空的 ,表示可以接受所有路径的action,
namespace可以写成 / ,或者是斜杠后带东西,或者是可以带好多的路径,都可以,那么对应的访问的时候你也需要在前面加东西加东西加东西。
下面我们就来看一下 这个项目的配置。
首先看strut.xml文件,
这个 constant我就不解释了,
package在这里我稍作解释,问大家,Java乱码的package是干什么用的?给我们的类打个包,避免类重名的情况,很简单,在Struts 2里面,这个package的作用一样,比如说我们有两个action,一个叫做index,另外一个也叫index, 一个是前台的,一个是后台的,你就可以
<package name=”front” >
<action name=”index”> </action>
</package>
<package name=”background” >
<action name=”index”> </action>
</package>
里面也可以由一个<action name=”index”> </action>
这样他们两个就不会冲突了,所以在命名上 ,package是用来区分重名的情况的。
extends 大家暂时就这样写就可以了,等讲完配置文件的配置之后大家就明白了。
第三个 namespace ,很简单,这个里面你写的是什么,你想访问这个namespace里面对应的action的时候,当你访问它的时候,就需要在前面带上你写的这个路径,namespace必须用斜杠(/)开头,这个namespace和我们的package在我们实际开发的时候,一般的来讲都用模块来命名,比如说我们现在写的是用户管理,那么这个package的名字就叫做user ,而后面的namespace一般的也叫做 user,即 /user 。一般是这样,这个主要是看大家在实际的开发中,项目经理是怎么样来约定的,所以如果我这里namespace是
/,那么我访问它的时候就 /index ,如果namespace是 /front ,那么访问的时候就应该是 /front/index ,
下面的result的name是success,凡是名字叫success的result,名字都可以不写,所以如果一个result没有写名字,那么默认就是 success,成功,对应的结果是什么。
namespace的路径默认为空,是什么意思了?意思就是说这个namespace是可以不写的,
我下面接着来第二个package,这个package的name 叫做 main,我的namespace是可以不写的。
上图的两种写法是等价的。
namespace不写就意味着namespace=”” ,namespace等于空就意味着只要你在URL地址里面敲index,不管你是在地址栏敲
http://localhost:8080/Struts2_0200_Namespace/index
还是http://localhost:8080/Struts2_0200_Namespace/sfsgsgs/gsgsgsg/index 在这里敲,你会发现它都可以访问我们的这个action,
现在namespace为空,大家可以理解了吧。这就意味着只要找到一个index 的action,然后没有找到的与其对应的精确的package的时候,全都交给namespace=“”的这个package去处理,所以从这个上面来讲这个namespace=””的package囊括了其他package处理不了的action。
总而言之,你找一个action的时候,先找一个对应的namespace里面有没有,如果没有的话,就到namespace位空的里面看一下有没有,要是还没有那就会报错了。
学习方法很重要,建议大家先把这个项目copy自己的机器上去,然后引入到自己WorkSpace里面,先部署上,做实验,看明白了之后,自己在动手来做自己的实验。
下面我们讲座这个操作的注意事项:
第一个,如果你是自己copy一个项目。
如把 Struts2_0200_Namespace项目选中,按 ctrl + c ,然后在Package 视图的空白处点一下,按ctrl + v 粘帖,出现下图所示界面,
我们将项目名称改为 T ,点击OK。
然后把新的项目部署到我们的Servers上面去的时候,给大家演示一下,先把Servers停掉,把原来的项目给remove掉,然后这个Servers很干净了,
然后我们可以把新的项目给部署上去,点击 Servers 右边的
Add
Deployment 图标,出现下图所示界面
选择我们的 新的 项目 T,点击finish,完成。
然后点
Debug
Servers 图标,运行 T项目。
然后我们来访问这个 T,
http://localhost:8080/T/sfsgsgs/index 大家请看它是没有的
如下图所示
但是当我们访问原来的namespace的时候,你会发现它还在,如下图所示
所以原因就在于 你copy完项目,之后需要在 MyEclipse的Web里面,一定要 把这个
Web Context-root的路径给改过来,如果你的新的项目叫做T,那么你这里也叫做 T
如下图所示
然后你重新部署就可以访问了。
这是拷贝项目的时候需要注意的内容。拷贝项目需要修改 Web Context-root的路径。
删除项目是,先把Servers停掉,然后Remove,在删掉项目。
第二个,把别人的项目引入到自己的WorkSpace中。
import General Existing Projects into WorkSpace 然后你选择好你的项目的根路径 ,需要注意的是一定要把Copyprojects into workspace 这个选项给勾上。建议大家一定要拷贝到自己的workspace下面去,然后点击Finish,完成就可以了。
正常情况就可以往你的Servers上面部署了。
有可能出问题的地方是,比如说你的项目引用的是JRE System Library 【jdk1.6.6_14】,而你那里不是叫这个名字,而且你是放在了别的路径,这个时候你是需要将其去掉,在重新配置一下,就是你把拷贝的项目的jre给remove掉,如下图所示:
然后在重新的将其加进来就可以了,演示一下,
我们将JRE System 给remove掉,就相当于 JAR包什么都没有,大家可以想想看,这个项目中的什么都用不了了,
我们还可以将其加进来,选中项目 Build Path Configure Build Path ,如下图所示
然后选择 Libraries ,然后选择右侧的
按钮,
如下图所示
选中我们的 JRE System Library 点击Next 下一步如下图所示
选择我们的Workspace 默认的就可以 了,点Finish完成。如下图所示
点 OK 即可。
这样就可以了,所以有可能大家在这里的设置跟我的是不一样的,大家可以吧我的去掉,把你的给加进来就可以了。
来源: <http://blog.sina.com.cn/s/blog_5e3c5e230100fapu.html>
下面我们讲第二个项目,就是action里面的第二个内容:namespace
Action 里面我们主要讲
Action的入门,顺带着讲了 struts的作用,就是将请求和结果视图分开,学东西一定要在战略上藐视敌人,你给我放轻松了,别太把它当回事,学完之后大家会发现,也就是一些配置操作,忘了那不很简单,回去查就可以了。但是分析和设计这种思考过程,是谁也没有办法替代你的,所以这个东西大家一定要做。
讲namespace
讲如何定义自己的Action
讲路径设置的问题
讲如何调用Action的自定义方法
讲通配符的配置
讲如何接受用户的输入(3种方式)
讲如何处理乱码
讲数据校验
讲Action中如何访问web元素
讲包含模块的配置文件
讲默认action
当大家把这个小的项目部署好之后,就可以看到 本节所讲的主要内容,
namespace决定了action的访问的路径,namespace可以不写,默认的是 “”,空的 ,表示可以接受所有路径的action,
namespace可以写成 / ,或者是斜杠后带东西,或者是可以带好多的路径,都可以,那么对应的访问的时候你也需要在前面加东西加东西加东西。
下面我们就来看一下 这个项目的配置。
首先看strut.xml文件,
这个 constant我就不解释了,
package在这里我稍作解释,问大家,Java乱码的package是干什么用的?给我们的类打个包,避免类重名的情况,很简单,在Struts 2里面,这个package的作用一样,比如说我们有两个action,一个叫做index,另外一个也叫index, 一个是前台的,一个是后台的,你就可以
<package name=”front” >
<action name=”index”> </action>
</package>
<package name=”background” >
<action name=”index”> </action>
</package>
里面也可以由一个<action name=”index”> </action>
这样他们两个就不会冲突了,所以在命名上 ,package是用来区分重名的情况的。
extends 大家暂时就这样写就可以了,等讲完配置文件的配置之后大家就明白了。
第三个 namespace ,很简单,这个里面你写的是什么,你想访问这个namespace里面对应的action的时候,当你访问它的时候,就需要在前面带上你写的这个路径,namespace必须用斜杠(/)开头,这个namespace和我们的package在我们实际开发的时候,一般的来讲都用模块来命名,比如说我们现在写的是用户管理,那么这个package的名字就叫做user ,而后面的namespace一般的也叫做 user,即 /user 。一般是这样,这个主要是看大家在实际的开发中,项目经理是怎么样来约定的,所以如果我这里namespace是
/,那么我访问它的时候就 /index ,如果namespace是 /front ,那么访问的时候就应该是 /front/index ,
下面的result的name是success,凡是名字叫success的result,名字都可以不写,所以如果一个result没有写名字,那么默认就是 success,成功,对应的结果是什么。
namespace的路径默认为空,是什么意思了?意思就是说这个namespace是可以不写的,
我下面接着来第二个package,这个package的name 叫做 main,我的namespace是可以不写的。
上图的两种写法是等价的。
namespace不写就意味着namespace=”” ,namespace等于空就意味着只要你在URL地址里面敲index,不管你是在地址栏敲
http://localhost:8080/Struts2_0200_Namespace/index
还是http://localhost:8080/Struts2_0200_Namespace/sfsgsgs/gsgsgsg/index 在这里敲,你会发现它都可以访问我们的这个action,
现在namespace为空,大家可以理解了吧。这就意味着只要找到一个index 的action,然后没有找到的与其对应的精确的package的时候,全都交给namespace=“”的这个package去处理,所以从这个上面来讲这个namespace=””的package囊括了其他package处理不了的action。
总而言之,你找一个action的时候,先找一个对应的namespace里面有没有,如果没有的话,就到namespace位空的里面看一下有没有,要是还没有那就会报错了。
学习方法很重要,建议大家先把这个项目copy自己的机器上去,然后引入到自己WorkSpace里面,先部署上,做实验,看明白了之后,自己在动手来做自己的实验。
下面我们讲座这个操作的注意事项:
第一个,如果你是自己copy一个项目。
如把 Struts2_0200_Namespace项目选中,按 ctrl + c ,然后在Package 视图的空白处点一下,按ctrl + v 粘帖,出现下图所示界面,
我们将项目名称改为 T ,点击OK。
然后把新的项目部署到我们的Servers上面去的时候,给大家演示一下,先把Servers停掉,把原来的项目给remove掉,然后这个Servers很干净了,
然后我们可以把新的项目给部署上去,点击 Servers 右边的
Add
Deployment 图标,出现下图所示界面
选择我们的 新的 项目 T,点击finish,完成。
然后点
Debug
Servers 图标,运行 T项目。
然后我们来访问这个 T,
http://localhost:8080/T/sfsgsgs/index 大家请看它是没有的
如下图所示
但是当我们访问原来的namespace的时候,你会发现它还在,如下图所示
所以原因就在于 你copy完项目,之后需要在 MyEclipse的Web里面,一定要 把这个
Web Context-root的路径给改过来,如果你的新的项目叫做T,那么你这里也叫做 T
如下图所示
然后你重新部署就可以访问了。
这是拷贝项目的时候需要注意的内容。拷贝项目需要修改 Web Context-root的路径。
删除项目是,先把Servers停掉,然后Remove,在删掉项目。
第二个,把别人的项目引入到自己的WorkSpace中。
import General Existing Projects into WorkSpace 然后你选择好你的项目的根路径 ,需要注意的是一定要把Copyprojects into workspace 这个选项给勾上。建议大家一定要拷贝到自己的workspace下面去,然后点击Finish,完成就可以了。
正常情况就可以往你的Servers上面部署了。
有可能出问题的地方是,比如说你的项目引用的是JRE System Library 【jdk1.6.6_14】,而你那里不是叫这个名字,而且你是放在了别的路径,这个时候你是需要将其去掉,在重新配置一下,就是你把拷贝的项目的jre给remove掉,如下图所示:
然后在重新的将其加进来就可以了,演示一下,
我们将JRE System 给remove掉,就相当于 JAR包什么都没有,大家可以想想看,这个项目中的什么都用不了了,
我们还可以将其加进来,选中项目 Build Path Configure Build Path ,如下图所示
然后选择 Libraries ,然后选择右侧的
按钮,
如下图所示
选中我们的 JRE System Library 点击Next 下一步如下图所示
选择我们的Workspace 默认的就可以 了,点Finish完成。如下图所示
点 OK 即可。
这样就可以了,所以有可能大家在这里的设置跟我的是不一样的,大家可以吧我的去掉,把你的给加进来就可以了。
来源: <http://blog.sina.com.cn/s/blog_5e3c5e230100fapu.html>
相关文章推荐
- Struts2_3_Action
- java写email邮件发送的时候遇到的问题
- Struts2_HelloWorld
- java控制float类型的小数位数
- java控制float类型的小数位数
- java开发前奏
- GUI软件跟eclipse的整合
- java线程相关的方法
- 《热血传奇2》wix、wil文件解析Java实现
- 4、java如何删除目录和文件
- java socket编程
- java反射学习笔记1--CLass类实例化的三种方式
- Java远程方法调用(RMI)
- java随机读取文件的内容
- Java管道流PipedStream
- MyEclipse 7.5中文与英文字体 大小不一致解决
- Java实现字符串反转
- JavA的自动装箱和拆箱
- 3、了解java的文件4种分隔符
- eclipse快捷键及帮助使用