问答详情
源自:4-4 动态方法调用-深入Struts2

通配符问题,百思不得求解,求大佬点拨

http://img3.mukewang.com/59d7738c0001d68408490460.jpg

警告: Could not find action or result: /HelloWorld/helloworld_add.action

There is no Action mapped for namespace [/] and action name [helloworld_add] associated with context path [/HelloWorld]. - [unknown location]


public class HelloWorldAction extends ActionSupport {

   

    

    public String add() {

    System.out.println("执行add");

    return "add";

    }

    public String update() {

    return "update";

    }


<struts>

  <package name="default" namespace="/" extends="struts-default">

   <action name="helloworld_*" method="{1}" class="com.imooc.action.HelloWorldAction">

     <result>/index.jsp</result>

     <result name="add">/{1}.jsp</result>

     <result name="update">/{1}.jsp</result>

   </action>  

  

  </package>

 <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>

</struts>


http://img1.mukewang.com/59d773ee0001d4ff11760460.jpg

提问者:慕无忌5903725 2017-10-06 20:15

个回答

  • 慕雪1586862
    2020-02-11 14:14:18

    <struts>
     <package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
     
      <action name="*_*" method="{2}" class="com.cailiang.action.{1}Action"> 
       <result>/result.jsp</result>
       <result name="add">/{2}.jsp</result>
       <result name="update">/{2}.jsp</result>
       <allowed-methods>add,update</allowed-methods>
      </action>
      
     </package>
     
     <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
    </struts>


  • ZonyH
    2018-11-01 15:11:47

    https://img1.mukewang.com/5bdaa70c00013d5014740382.jpg

    添加allowed-method, 参考 https://www.jianshu.com/p/b6c961a1a141

  • qq_懵懂的岁月_0
    2018-08-01 11:57:57

    struts2版本的问题吧 是不是要添加allow-methods

  • 盛夏Zzz
    2017-10-09 15:51:49

    看看你的报错,namespace的问题。

  • 慕无忌5903725
    2017-10-08 13:15:48

    就是照你所说的写得代码啊,可是还是显示404错误啊

  • Call_Me_Wan
    2017-10-07 21:40:56

    肯定不对啊,action name="helloworld_*" method="{1}" 表示你响应的只能是helloworld_*.action的动作,比如说响应helloworld_login.action,而method{N}代表前面的第N个*匹配子串,意思是跳转到login.jsp页面。看看你有写了这些相应的action没,以及jsp页面有与之对应的没