<?xml version="1.0" encoding="UTF-8" ?>
<!--指定struts2配置文件的DTD信息-->
<!DOCTYPE struts PUBLIC
"-//Apache Sofeware Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- struts是struts2配置文件的根元素-->
<struts>
<!-- struts2的Action必须放在指定的包空间下定义 -->
<package name="struts2" extends="struts-default">
<!--定义login的Action,该Action的实现类为com.soft.action.LoginAction类-->
<action name="Login" class="com.soft.action.LoginAction">
<!--定义处理结果和资源之间映射关系-->
<result name="success">/welcome.jsp </result>
<result name="error">/error.jsp </result>
</action>
</package>
</struts>
试试这个呢?也许你给的这个<package name="action" extends="struts-default"> package name有点问题。
解决方案 »
- Myeclipse8.5 如何使用STRUTS2.2
- sping框架导致事务失效,请教原因
- 急!求助! 一个Java Qpid的新闻订阅程序!
- 请问java如何访问带有身份验证的webservice
- hibernate 执行SQL语句字符串常量类型变成了CHARACTER????
- Spring整合jBPM的问题
- 关于hibernate子查询
- snmp4j agent 配置
- 容器是如何保证自己的类/JSP的线程安全的? 是类似与COM的STA吗
- Cannot find class [org.springframework.scheduling.timer.ScheduledTimerTask] for
- 一个入门问题,谢谢
- HIBERNATE关联映射理解问题?(基础)
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
把页面中的login改成Login 试下
这里的name必须和web.xml中你配制的名字完全一样
应该是这样的<package name="Struts2" extends="struts-default">
关于你在struts.xml中配置的package的name属性和你在xml定义的完全没有任何的联系和关系
在struts.xml中,package的name属性其实你也可以理解成java中的包,包名除了命名规范外是没有限制的再来看你报的异常
严重: Could not find action or result
There is no Action mapped for namespace / and action name login. - [unknown location]
不能找到指定的action or result
这里可能有2个情况
1.你在jsp中定义的action是否正确的指向你在struts.xml中配置的action
你在struts.xml中配置的action是
<action name="Login" class="com.soft.action.LoginAction">
那么你JSP中,你定义的action应该是
<s:form action="Login"> 或者你没有使用struts2的标签库,那么你应该定义成<Form action="Login.action">
注意,在JSP中的action定义必须是跟xml中的action定义是一模一样的,否则肯定找不到.第二种情况,我不敢确定,不过你可以尝试下,你报的异常是找不到action或者result.
而且你的确没有定义
<result name="input">/xxx.jsp</result>
你的程序里有没有输入校验,或者类型转换???你可以自己看看:) 因为当发现输入校验或者类型转换时,在你没有定义时,他们是会返回"input"的