我们公司的项目是搜索,如果不用get提交方式,当用户想将当前搜索的内容 发给别人看时 就会500 实现不了这个功能,我现在一直用post 想改成get方式,可是一改就出现如下异常?2008-06-06 11:26:29,   ERROR  org.apache.struts.actions.DispatchAction 220   -  Request[/search] does not contain handler parameter named 'method'.  This may be caused by whitespace in the label text. 
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:220) 2008-06-06 11:26:29,    WARN  org.apache.struts.action.RequestProcessor 516   -  Unhandled Exception thrown: class javax.servlet.ServletException 
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516) 2008-06-06 11:26:29,   ERROR  org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/search].[action] 250   -  Servlet.service() for servlet action threw exception 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:250) javax.servlet.ServletException: Request[/search] does not contain handler parameter named 'method'.  This may be caused by whitespace in the label text.
at org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:222)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.giaval.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)谁知道 我该怎么做才能改成 get 提交方式呢?快帮帮我吧。如果弄不了我就得重新把所有的DispathAction改成Action了。这样比较郁闷啊~!

解决方案 »

  1.   

    javax.servlet.ServletException: Request[/search] does not contain handler parameter named 'method'.  This may be caused by whitespace in the label text. 
    传过来的参数有空格吧?
    get提交方式是没问题的!
      

  2.   

    Request[/search] does not contain handler parameter named 'method'.  This may be caused by whitespace in the label text. 
    他说你没有叫“method”的参数,或许是由于whitespace in the label text,你查看下是不是有空格什么的!
      

  3.   

    <form name="f1" action="search.do?method=search" method="Get">
    这个就是表单啦
    http://localhost:8080/search/search.do?wd=asdfasdf
    这个是url然后就出现这个错误  大家帮看看吧~!~!~!
      

  4.   

    http://localhost:8080/search/search.do?wd=asdfasdf 大家看这个url (GET)提交时http://localhost:8080/search/search.do?action=search这个是post 提交时    action=search  用get提交少了这里  怎么办  一定是这里出的错
      

  5.   

    search.do?method=search
    你把method名字换个是是
      

  6.   

    换过了和那个没关系啊
    dispathaction 想使用 get 提交方式
    得和js 一起用 挺麻烦的  刚才看了一篇文章  所以我现在直接把 dispathaction 全改成 action就OK了
      

  7.   

    楼主没理解 这个类的用法      你可以把你的struts配置文件 和 页面的url写法 发上来
      

  8.   

    和get或者post提交没什么关系。。
    dispathaction类(本身就extends action)要在actionform里面配置parameter="act" 然后在调用的action类里面必须使用..do?act=“方法名”
    如果默认不带参数是执行execute()这个方法。。带上的方法名要在action类里面必须存在这个方法签名必须和execute()一样
    不知道这样描述清楚否。。
     
      

  9.   

    这样做也是不行的
    地址请求中那个method=search会消失
    从而找不到方法
    我没办法也是全改成了post
      

  10.   

    我看了半天不知道你们在说什么?
    dispathaction 你们自己随便做一个试试   然后用Get提交试试http://localhost:8080/search/search.do?wd=asdfasdf   这个就是默认的Get 提交方式   我们没有办法去改   不知道用JS改提交方式好不好使http://localhost:8080/search/search.do?action=search    这个是默认的Post 提交方式  你们试一下就知道了    还有12楼 你说的 == 废话, 如果不写一定出异常   你是不是没看懂我说的是什么意思啊?你看13和我的理解一样,我是没想到好方法。