damiean 2011-03-21 14:25
浏览 384
已采纳

java.lang.NoSuchMethodException

[code="java"]java.lang.NoSuchMethodException: com.kinrich.action.MediaAction.deleteMedia()
java.lang.Class.getMethod(Class.java:1581)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterceptor.java:75)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:47)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
[/code]
[color=red]报错[/color]

[color=red]Action[/color]
[code="java"]
public String deleteMedia() throws Exception{
String[] mediaid = request.getParameterValues("mediaid");
for (int i = 0; i < mediaid.length; i++) {
manageMediaDao.deleteMedia(Integer.parseInt(mediaid[i]));
}
return getList();

}

[/code]

[color=red]页面[/color]
[code="java"]

function deleteMedia(){ if(confirm("你确定要删除?")){ form1.action="media!deleteMedia.action"; form1.method="post"; form1.submit(); } }
  <c:forEach var="medialist" items="${medialist}">
                        <tr>
                            <td class="alignM">
                                <input type="checkbox" name="mediaid" value="${medialist.id}" />
                            </td>


/c:forEach
[/code]

[color=red]struts[/color]
[code="java"]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<!-- spring提供的实现类, 作用:根据请求,到spring容器中寻找得到对应的Action -->
value="org.apache.struts2.spring.StrutsSpringObjectFactory" />

<package name="kinrich" extends="struts-default">
    <interceptors>
        <!-- Basic stack -->
        <interceptor-stack name="myStack">
            <interceptor-ref name="logger" />
            <interceptor-ref name="component" />
            <interceptor-ref name="servlet-config" />
            <interceptor-ref name="static-params" />
            <interceptor-ref name="params" />
            <interceptor-ref name="conversionError" />
            <interceptor-ref name="validation" />
            <interceptor-ref name="workflow" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="myStack" />


    <action name="media" class="mediaAction">
        <result name="show">/ManageMemor.jsp</result>
        <result name="input">/updateToMemor.jsp</result>
    </action>
</package>


[/code]

  • 写回答

4条回答

  • 勤劳的小猿 2011-03-21 15:19
    关注

    教你一个struts2的数组提交方式。
    拿你的为例子:
    多个checkbox.




    页面上有四个checkbox,我这里都是直接写,你的可以用什么迭代之类的。
    那在action类中我只写一个字段来接收所有的checkbox的name;
    class MyAction extends ActionSupport {
    private Integer mediaid;
    //省略get/set
    }
    那么接收提交的时候,mediaid属性是一个包含了四个checkbox的值的一个字符串。
    mediaid的值应该是“1, 2, 3, 4”,中间有一个空格。这个是struts2帮你实现了。
    其实不需要像你那么接收数组。
    在把字符串变成数组:
    String[] mediaids = mediaids.split(", ");
    这样做万无一失。我发现很多人都不会去很好的利用struts2的功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧