Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 使用Struts2遇到There is no action mapped for namespaces / and action name的問題

使用Struts2遇到There is no action mapped for namespaces / and action name的問題

編輯:關於Android編程

在最初配置struts中會遇到There is no Action mapped for namespace / and action name類似的問題,很多情況是我們粗心大意導致的,以下為總結的解決方法:

1、struts.xml文件配置錯誤,這是其中一個很大的原因

 DTD的問題在此不再贅述,網上相關的帖子很多,在這裡出現的問題主要是適用版本2.0的問題,注意區分2.0和2.1,建議都用2.0
 其次就是編碼格式的問題,如果遇到中文亂碼,記得加
<span style="font-size:18px;"><constant name="struts.i18n.encoding" value="GBK"></constant></span>

 

大多數問題處在package中,

extends的作用主要用於繼承struts-default或者其它的package,根據自己的情況更改,建議不要漏掉;

namespace不要拼寫錯誤,因為在項目中會分單獨每個模塊,建議在平時的練習中最好在namespace中寫成/模塊名,好區分,若平時練習可以寫/,在訪問的時候直接寫

<%=request.getContextPath()%>/index.action
在package中還有比較容易忽視的地方是action中/r1.jsp會比較容易漏掉“/”,在訪問action中提示The requested resource is not available. 多半是因為漏加/仔細一點
<span style="font-size:18px;"><!--?xml version="1.0" encoding="UTF-8" ?-->


<struts>
     <constant name="struts.i18n.encoding" value="GBK"></constant>
    <package extends="struts-default" name="actions" namespace="/actions">
        <action name="index">
            <result>/r1.jsp</result>
        </action>
    </package>
</struts></span>

2、index.jsp中容易出現的問題

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%
    String context=request.getContextPath();
    System.out.println(context);
%>

這裡出現的問題主要是在jsp的存放位置,注意區分Eclipse和MyEclipse,我是用的是EclipseEE,jsp的存放位置WebContent,與WEB-INF在同一級,這也是訪問不到的重要原因之一

建議在訪問的時候最好加上.action

3、web.xml



  Struts
   
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
   
  
    struts2
    /*
   
  
  
    index.jsp
  
  

這裡最好是復制以上filter的,不要更改內容,問題可能會出現在,因為最初生成的web.xml文件中有一個index.html和index.htm,根據自己的情況進行選擇

 




 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved