2012年12月26日

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

项目例子:Struts2_Namespace

web.xml配置文件就不说了

主要是struts.xml的配置

   
   
   
   
  1. xml version="1.0" encoding="UTF-8" ?> 
  2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  3.     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  4. <struts> 
  5.     <constant name="struts.devMode" value="true"/> 
  6.     <package name="front" extends="struts-default" namespace="/front"> 
  7.         <action name="index"> 
  8.             <result>/Namespace.jspresult> 
  9.         action> 
  10.     package> 
  11. 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.jspresult> 
  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. PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4.  
  5.       
  6.         Namespace  
  7.       
  8.       
  9.         namespace决定了action的访问路径,默认为"",可以接收所有路径的action 
  10.           
  11.         namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,  
  12.         /xxx/index.action,或者/xxx/yyy/index.action.  
  13.           
  14.         namespace最好也用模块来进行命名  
  15.       
  16.