Struts 2学習第2 part Namespaceネーミングスペース関連


2012年12月26日
Struts 2学習第2 part Namespaceネーミングスペース関連
プロジェクト例:Struts 2_Namespace
Web.xmlプロファイルは言わない
主にstruts.xmlの構成
   
   
   
   
  1. xml version="1.0" encoding="UTF-8" ?> 
  2. 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.jspresult> 
  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.jspresult> 
  4.     action> 
  5. package> 

namespaceの値が空であることがわかります」と、ちょっと面白いです
この場合、どこにパスを追加してもindexというアクションがデフォルトで実行されます.
次のようになります.http://localhost:8080/struts2_Namespace/fjadsljfj/index
または、http://localhost:8080/struts2_Namespace/fjadsljfj/gjdsdfjg/index
存在しないネーミングスペースでもindexというActionが実行されることがわかります.
 
表示されるjspファイル:Namespace.jsp
   
   
   
   
  1. "java" import="java.util.*" pageEncoding="utf-8"%>  
  2. "/struts-tags"  prefix="s"%>  
  3. HTML 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.