最近写网站遇到了关于<s:action/>的问题,我就写了个小程序测试了下,但结果很让我不解。这个测试程序的结构是这样的index.jsp页面是这样的 <body>
<s:a href="show.action">点我</s:a>
</body>
struts.xml中这样配置
<package name="default" namespace="/" extends="struts-default">
<action name="show" class="com.test.action.Show">
<result>show.jsp</result>
</action>
</package>
action是这样的
public class Show extends ActionSupport {
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
}
在show.jsp中输出一句话
<body>
<h1>hello</h1>
</body>
这样写的话,页面可以正常显示。但是我把Index.jsp中的<s:a>改成<s:action>就会报错
<body>
<%-- <s:a href="show.action">点我</s:a> --%>
<s:action name="show.action" executeResult="true"></s:action>
</body>
报的错误
SEVERE: Could not execute action: /show.action
There is no Action mapped for action name show.action. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:289)
at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:175)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.index_jsp._jspx_meth_s_005faction_005f0(index_jsp.java:128)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)struts2
<s:a href="show.action">点我</s:a>
</body>
struts.xml中这样配置
<package name="default" namespace="/" extends="struts-default">
<action name="show" class="com.test.action.Show">
<result>show.jsp</result>
</action>
</package>
action是这样的
public class Show extends ActionSupport {
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
}
在show.jsp中输出一句话
<body>
<h1>hello</h1>
</body>
这样写的话,页面可以正常显示。但是我把Index.jsp中的<s:a>改成<s:action>就会报错
<body>
<%-- <s:a href="show.action">点我</s:a> --%>
<s:action name="show.action" executeResult="true"></s:action>
</body>
报的错误
SEVERE: Could not execute action: /show.action
There is no Action mapped for action name show.action. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:289)
at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:175)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.index_jsp._jspx_meth_s_005faction_005f0(index_jsp.java:128)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)struts2
解决方案 »
- 广州传智播客2012年3月28号javaEE+android完整课程实录视频
- java数据结构
- hibernate hql子查询问题
- 请问目前有哪些网站提供---短信Web Service ?????????
- [RPC编程]-------步骤分析-----详解----
- 我在SEI中的方法带有long[]参数,部署到jboss下,jboss提示Class Not Found com.yansg.webservice._arrays.longArray,为什么会这样?
- 初试webwork的ioc,不知道那里出问题
- 请大家帮忙看看 一个hibernate问题?
- 开发一个用于开发XML应用程序的工具,欢迎讨论,出策。。。
- 文本框获取焦点时弹出提示信息,点击提示信息可以关掉,但如何再让文本框获取到焦点呢
- JAVA 连接数据库
- HTTP Status 500 - java.lang.NoClassDefFoundError
<s:action 页面上什么也留不下,它是在解析jsp时调用后台的方法用的。name要的是action的名字而不是请求地址的后半部分。<s:action name="show" id="showc"/><s:property value="#showc.方法"/>一般是这么用的
那不是已经跟你说了么?
<s:action name="show" id="showc"/>
这句话的意思就是说showc指向了show这个action类
如果你想执行里面的方法就这样
<s:property value="#showc.方法"/><s:select list="#showc.xx方法" />这个select就的list值就是方法的返回值
<s:action>不用你点,你也没地方点,既然知道是名字那你上面写的是什么?
那不是已经跟你说了么?
<s:action name="show" id="showc"/>
这句话的意思就是说showc指向了show这个action类
如果你想执行里面的方法就这样
<s:property value="#showc.方法"/><s:select list="#showc.xx方法" />这个select就的list值就是方法的返回值
你好,问题已经解决。还是我以前的那种写法,不知道怎么回事就可以了。但还是非常感谢,又学的了一些东西