文档章节

遇到一个很二的sturts2 命名空间问题

dml124
 dml124
发布于 2012/09/03 17:43
字数 605
阅读 98
收藏 0

今天想再从新搞搞struts2 结果弄得一塌糊涂,终究其问题原因是命名空间的错。

三。命名空间配置
1.不使用命名空间的方式:
struts配置:

Xml代码        
  1. <struts>
  2. <include file="struts-default.xml" />
  3. <package name="com.casc.manager" extends="struts-default"
  4. <action name="xxn" class="com.casc.manager.XxnAction">
  5. <result name="success">/success.jsp</result>
  6. <result name="error">/index.jsp</result>
  7. <result name ="input" >/index.jsp</result >
  8. </action>
  9. </package>
  10. </struts>
<struts>
	<include file="struts-default.xml" />
    <package name="com.casc.manager" extends="struts-default" 
        <action name="xxn" class="com.casc.manager.XxnAction">
            <result name="success">/success.jsp</result>
             <result name="error">/index.jsp</result>
             <result name ="input" >/index.jsp</result > 
        </action>
        
    </package>
</struts>


Html代码        
  1. <form action="xxn.action" method="post">
  2. <s:text name="user.name"></s:text><input type="text" name="name"><br>
  3. <s:text name="user.password"></s:text><input type="password" name="password"><br>
  4. <input type="submit" value="<s:text name="user.submit"/>"/>
  5. </form>
<form action="xxn.action" method="post">
        <s:text name="user.name"></s:text><input type="text" name="name"><br>
          <s:text name="user.password"></s:text><input type="password" name="password"><br>
          <input type="submit" value="<s:text name="user.submit"/>"/>
</form>


地址栏访问:http://localhost:9999/TDIAP/xxn.action



这样配置基本不会有问题。

可是在struts1.2里,我们习惯:path="/abc/xxn"

方便于在abc文件夹下操作。


2.这样在struts2.0中就要是用命名空间来达到相同的效果。
Xml代码        
  1. <struts>
  2. <include file="struts-default.xml" />
  3. <package name="com.casc.manager" extends="struts-default" namespace="/mng">
  4. <action name="xxn" class="com.casc.manager.XxnAction">
  5. <result name="success">/success.jsp</result>
  6. <result name="error">/index.jsp</result>
  7. <result name ="input" >/index.jsp</result >
  8. </action>
  9. </package>
  10. </struts>
<struts>
	<include file="struts-default.xml" />
    <package name="com.casc.manager" extends="struts-default" namespace="/mng">
        <action name="xxn" class="com.casc.manager.XxnAction">
            <result name="success">/success.jsp</result>
             <result name="error">/index.jsp</result>
             <result name ="input" >/index.jsp</result > 
        </action>
    </package>
</struts>


Html代码        
  1. <form action="<%=request.getContextPath() %>/mng/xxn.action" method="post">
  2. <s:text name="user.name"></s:text><input type="text" name="name"><br>
  3. <s:text name="user.password"></s:text><input type="password" name="password"><br>
  4. <input type="submit" value="<s:text name="user.submit"/>"/>
  5. </form>
<form action="<%=request.getContextPath() %>/mng/xxn.action" method="post">
        <s:text name="user.name"></s:text><input type="text" name="name"><br>
          <s:text name="user.password"></s:text><input type="password" name="password"><br>
          <input type="submit" value="<s:text name="user.submit"/>"/>
</form>


这里主页 因为我们使用了命名空间“/mng”,如果在mng文件夹下的jsp页面我们可以直接写 action="xxn.action"

但在其他文件夹下就不行了。如果在mng上级目录尽量不要写成 action="mng/xxn.action", 这样会成功但会出现问题,他很可能出现地址栏中http://localhost:9999/TDIAP/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng/mng /xxn.action
这种情况。

安全起见 使用绝对路径:action="<%=request.getContextPath() %>/mng/xxn.action" 这样写不用考虑当前目录。

地址栏访问:http://localhost:9999/TDIAP/mng/ xxn.action 要把命名空间加上。 

同时推荐一个很不的博客:

http://salute.iteye.com/blog/1583777

 

© 著作权归作者所有

共有 人打赏支持
dml124
粉丝 5
博文 89
码字总数 41856
作品 0
海淀
程序员
私信 提问
加载中

评论(2)

dml124
dml124

引用来自“骑着单车赛宝马”的评论

嗯 这中问题俺也遇到了

你最后结局了吗

您的昵称已被使用
嗯 这中问题俺也遇到了
Sturts2中的OGNL

参考http://struts.apache.org/2.x/docs/ognl-basics.html 和 http://struts.apache.org/2.x/docs/ognl.html OGNL——Object Graph Navigation Language,参考 http://www.ognl.org/ 一.Xwo......

yonge
2009/03/11
1K
3
自定义框架 的一个小问题

自己练习写一个小框架,遇到这样一个问题: DEBUG为false时,将所有载入的核心类文件生成一个文件~boot.php载入。 使用了如下的代码: private static function LoadCore(){ // 创建载入核心类...

manbudezhu
2016/06/01
139
4
关于Hibernate懒加载----Spring filter

处理方法:在web.xml中,配置(拦截器需要在sturts2之前) <!-- Spring 懒加载 拦截器 --><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.o......

明天以后
2014/05/29
0
0
Python名称空间是什么?python开发0基础学习

命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是独立没有关系的,一个命名空间中不能有重名,但是不同的命名空间可以重名而没有任何影响。 通俗讲:名称空间就是存...

zhouzhou2018
2018/05/23
0
0
为什么找不到引用工程的命名空间

如图所示,领导给一个工程文件,叫我引用里面封装好的一些方法,现在问题出来了,不管是引用项目还是引用生成的dll,一开始添加引用过后可以using 并找到对应的命名空间,不过编译之后就会出...

MaLove
2015/10/30
51
0

没有更多内容

加载失败,请刷新页面

加载更多

一线互联网技术推荐:Java工程师架构知识系统化汇总,面完45K!

根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。 在此基础上,互联网行业针对 Java 开发的招聘需求,也是近年技术类岗位供...

java知识分子
27分钟前
4
0
JAVA并发编程JUC基础学习(简介)

之前写过一篇并发编程的简单实例应用,Future快速实现并发编程,可以很快的在自己的项目中应用,但并不系统,之前说过总结一篇(或者一系列)java.util.concurrent 这个并发编程工具类的学习...

小海bug
30分钟前
1
0
matlab-线性代数 齐次方程组 判断是否有无穷多解

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclc% x1+2*......

志成就
30分钟前
1
0
简单描述PHP发展历程

PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域...

问题终结者
39分钟前
1
0
结构体指针需要初始化

过年过的大脑已经瓦特了。 #include <stdio.h>#define N 10#define MAXSIZE 100typedef struct {int r[MAXSIZE+1];/* 用于存储要排序数组 */ int length;/* 用于记录顺序表的...

niithub
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部