最近项目中总是离奇的报下面的错误:
- 2012-5-22 18:15:21 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
- 警告: No configuration found for the specified action: 'athleteSignup/saveAthleteSignupBatch.action' in namespace: '/event'.
- Form action defaulting to 'action' attribute's literal value.
- 2012-5-22 18:15:21 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
- 警告: No configuration found for the specified action: 'athleteSignup/saveAthleteSignupBatch.action' in namespace: '/event'.
- Form action defaulting to 'action' attribute's literal value.
之所以奇怪,就是因为虽然报错,但是不影响程序的执行!
但是,对于这种警告信息,看着还是很不爽,肯定是程序的某处隐蔽的错误!下面,我们一起来探讨下,怎么解决这个问题。
- 警告: No configuration found for the specified action: 'athleteSignup/saveAthleteSignupBatch.action' in namespace: '/event'.
分析下这个错误提示:在namespace为'/event'的命名空间下面,没有找到名字为
'athleteSignup/saveAthleteSignupBatch.action'
的action,经过查找,发现,'/event'的namespace下面,确实是没有
'athleteSignup/saveAthleteSignupBatch.action'这个action的!
所以会提示没有找到这个action。
页面的代码如下:
- <s:form action="athleteSignup/saveAthleteSignupBatch.action" method="post" id="form1" name="form1">
Struts查找action的顺序如下:
首先有如下的请求:
项目的路径为
- http://localhost:8080/SportSys
实际的请求路径如下:
- http://localhost:8080/SportSys/event/athleteSignup/saveAthleteSignupBatch.action
所以前面多了个/event
当在/event的namespace下面没有找到'athleteSignup/saveAthleteSignupBatch.action'
这个action时,转去
所以请求的顺序为:先查找命名空间为/athleteSignup
然后请求名字为saveAthleteSignupBatch 的action,由于这个是存在的,所以程序依然是能够执行的!
知道了这样运行的,所以,
改为如下方式即可!加入"namespace"这个属性即可!
- <s:form namespace="/athleteSignup" action="saveAthleteSignupBatch" method="post" id="form1" name="form1">
可以看出s:form这个标签和html的form标签的不同之处,
.action这个在s:form中是可以省略的!
- http://localhost:8080/SportSys/athleteSignup/saveAthleteSignupBatch.action
转载于:https://blog.51cto.com/enetq/872953