Struts2.5动态方法调用 错误Messages:This method: edit for action product is not allowed!解决方法
2016-06-03 19:03
507 查看
报错信息如下:
Struts Problem Report
Struts has detected an unhandled exception:Messages: | This method: edit for action product is not allowed! |
Stack traces
This method: edit for action product is not allowed! - [unknown location]com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:200) org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:63) org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:546) org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:81) org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:113) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745)
jsp源代码:
<body> <table> <tr> <th>商品id</th> <th>商品名称</th> <th>数量</th> <th colspan="2">操作</th> </tr> <tr> <td>1001</td> <td>手机</td> <td>128</td> <td><a href="product!edit.action?productId=1001">编辑</a></td> <td><a href="product!del.action?productId=1001">删除</a></td> </tr> <tr> <td>1002</td> <td>相机</td> <td>120</td> <td><a href="product!edit.action?productId=1002">编辑</a></td> <td><a href="product!del.action?productId=1002">删除</a></td> </tr> </table> </body>
java源代码
public class ProductAction extends ActionSupport { private int productId; /** * @return the productId */ public int getProductId() { return productId; } /** * @param productId * the productId to set */ public void setProductId(int productId) { this.productId = productId; } /** * 编辑商品 */ public String edit() { System.out.println("编辑商品" + this.productId); return "edit"; } /** * 删除商品 */ public String del() { System.out.println("删除商品" + this.productId); return "del"; } }
java源代码struts.xml
<struts> <constant name="struts.devMode" value="true" /> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="product" class="action.ProductAction"> <result name="edit">/edit.jsp</result> <result name="del">/del.jsp</result> </action> </package> </struts>
解决方案:修改struts.xml,添加被allowed的方法
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="product" class="action.ProductAction"> <result name="edit">/edit.jsp</result> <result name="del">/del.jsp</result> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 11px; line-height: normal; font-family: Monaco; color: rgb(79, 118, 203);"><span style="white-space:pre"> </span> <!-- 添加被允许的两个方法 --></p><span style="color:#ff0000;"><span style="white-space:pre"> </span><allowed-methods>del,edit</allowed-methods></span> </action> </package> </struts>
注意:若出现下面这个错误
Struts Problem Report
Struts has detected an unhandled exception:Messages: | There is no Action mapped for namespace [/] and action name [product!del] associated with context path [/Chapter03]. |
Stacktraces
There is no Action mapped for namespace [/] and action name [product!del] associated with context path [/Chapter03]. - [unknown location]应修改struts.xml文件:
<span style="color:#3933ff;"><struts>
<constant name="struts.devMode" value="true" />
</span><span style="color:#ff0000;"><constant name="struts.enable.DynamicMethodInvocation" value="true" /></span>
<span style="color:#ff0000;"></span><pre name="code" class="html" style="font-size: 11px;"><span style="color:#3933ff;">……</span>
相关文章推荐
- JQuery+Strusts1.x无刷新登录
- 电脑自动重启提示 Verifying DMI pool Data的解决方法
- 硬盘启动提示verifying DMI Pool Data错误的解决方法
- java struts常见错误以及原因分析
- Struts之logic标签库详解
- 通过实例深入学习Java的Struts框架中的OGNL表达式使用
- Java的Struts框架中append标签与generator标签的使用
- struts2的select标签用法实例分析
- SSH框架网上商城项目第20战之在线支付平台
- 在Java的Struts框架下进行web编程的入门教程
- 详解Java的Struts框架中注释的用法
- java中struts 框架的实现
- 利用Java的Struts框架实现电子邮件发送功能
- 在Java的Struts框架中ONGL表达式的基础使用入门
- 详解Java的Struts框架中栈值和OGNL的使用
- Java的Struts框架简介与环境配置教程
- Java的Struts框架中的if/else标签使用详解
- 简单说明Java的Struts框架中merge标签的使用方法
- 详解Java的Struts框架中上传文件和客户端验证的实现
- Java的Struts框架中Action的编写与拦截器的使用方法