Struts 2 学习 第2part Namespace 命名空间相关

2012年12月26日

Struts 2 学习 第2part Namespace 命名空间相关

项目例子:Struts2_Namespace

web.xml配置文件就不说了

主要是struts.xml的配置

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  5. <struts> 
  6.     <constant name="struts.devMode" value="true"/> 
  7.     <package name="front" extends="struts-default" namespace="/front"> 
  8.         <action name="index"> 
  9.             <result>/Namespace.jsp</result> 
  10.         </action> 
  11.     </package> 
  12. </struts> 

这里的命名空间是front,这意味着我们要访问index这个Action需要在加上/front这个路径

如:http://localhost:8080/struts2_Namespace/front/index

否则项目会报错。

假如有在struts.xml加上如下代码:

  
  
  
  
  1. <package name="main" extends="struts-default" namespace=""> 
  2.     <action name="index"> 
  3.         <result>/Namespace.jsp</result> 
  4.     </action> 
  5. </package> 

我们可以看到namespace的值为空"", 这时候有点有趣了

这时候无论在哪里添加路径都会默认执行index这个Action

如:http://localhost:8080/struts2_Namespace/fjadsljfj/index

或者:http://localhost:8080/struts2_Namespace/fjadsljfj/gjdsdfjg/index

我们可以看到即使不存在的命名空间都会执行index这个Action.

 

显示的jsp文件:Namspace.jsp

  
  
  
  
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%@ taglib uri="/struts-tags"  prefix="s"%>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.     <head>  
  6.         <title>Namespace</title>  
  7.     </head>  
  8.     <body>  
  9.         namespace决定了action的访问路径,默认为"",可以接收所有路径的action 
  10.         <br />  
  11.         namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,  
  12.         /xxx/index.action,或者/xxx/yyy/index.action.  
  13.         <br />  
  14.         namespace最好也用模块来进行命名  
  15.     </body>  
  16. </html>  

 

你可能感兴趣的:(strut2)