今天在调试一个基础的struts2框架小程序。总是提示"There is no Action mapped for namespace / and action name"的错误。上网查询后发现这是一个初学者经常碰到的问题,导致错误的原因主要有两种。总结如下: 一、struts.xml文件错误。这种错误又分为以下几种:1,struts.xml文件名错误。一定要注意拼写问题;2,struts.xml文件放置路径错误。一定要将此文件放置在src目录下。编译成功后,要确认是否编译到classes目录中;3,struts.xml文件内容错误。下面给出一个正确的struts.xml文件以供参考。
; e5 p8 n8 \! r1 b; @- P7 e% v5 m5 n! R$ u
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <!-- 配置为开发模式 --> <constant name="struts.devMode" value="true" /> <!-- 把扩展名配置为action --> <constant name="struts.action.extension" value="action" /> <!--把主题配置为simple --> <constant name="struts.ui.theme" value="simple" /> <package name="default" extends="struts-default"> <!-- 配置测试用的Action,未与spring整合,class属性写类的全名 --> <!-- 当Struts2与Spring整合后,class属性可以写bean的名称 --> <action name="test" class="com.demo.test.TestAction"> <result name="success">/WEB-INF/test.jsp</result> </action> </package></struts> 我的问题就是把struts.xml放在了WEB-INF下了,应该放在src中,或者新建一个source folder,config,将配置文件放在config里面。
( ?; S3 @$ q/ o2 ]- {! s- |不这样做的后果是发布后的classes中没有struts.xml文件。5 y2 n9 u7 M$ A% c. v0 T
8 S6 R/ [6 _' J |