如例子<package name="itcast" namespace="/test" extends="struts-default">
<action name="helloworld_*" class="cn.itcast.action.HelloWorldAction" method="{1}">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>这中间有个通配符 helloworld_* 这与method{1}之间的关系是什么?访问的时候在类里边有如下的方法public class HelloWorldAction{
private String message;
....
public String execute() throws Exception{
this.message = "我的第一个struts2应用";
return "success";
}

public String other() throws Exception{
this.message = "第二个方法";
return "success";
}
}这样在之前的表单中设置action如下内容
/test/helloworld_other.action
那这个"/test/helloworld_other.action"中的"other"是不是一定要根据方法中的名称来走?method又有什么用??
我是个新手谢谢各位大侠

解决方案 »

  1.   

    例如:
    当struts2遇到itcast_input时,就会自动去找Itcast的input方法,当遇到Itcast_delete时,就会自动去找Itcast的delete方法。method="{1}"的意思就是告诉struts2去找前面*中出现的方法并执行。
      

  2.   

    可里边的数字代表什么呢???那我写method="{3}"呢?
      

  3.   

    如果设置了通配符helloworld_*,method中的{1}表示第一个*号的内容,比如helloworld_other.action,则此处的method取值即为other,表示执行这个类cn.itcast.action.HelloWorldAction中的other方法,故helloworld_*中*号的取值一定要是那个action中的一个方法,不然会报找不到路径的错误。默认的action都有execute方法,如果不配置method,默认会执行execute()方法,声明method就是指明要执行action中的哪一个方法。
      

  4.   

    我只是纠结到这个死胡同里了..如果我事helloword_*/*这样写呢??那我里边的方法怎么调用?一次调用俩方法么??或者说method="2"这样写对么??那我在使用的时候如何调用呢?
    helloword_executive_other???
      

  5.   

    如果是helloword_*/*,比如helloword_a/b,那你的method属性可以是{1},表示执行a方法,也可以是{2}表示执行b方法
      

  6.   

    通配符很简单 
    {1}代表第一个星号 {2}代表第二个星号
    例如
    <package name="itcast" namespace="/test" extends="struts-default">
        <action name="*_*" class="cn.itcast.action.*Action" method="{1}">
            <result name="success">/WEB-INF/page/{1}_{2}.jsp</result>
        </action>
    </package>
    如果我需要访问 UserAction的方法的话 超链接可以这样写<a href="<%=path%>/test/User_test1" >访问 UserAction的test1方法</a> 
    返回的页面为 /WEB-INF/page/User_test1.jsp<a href="<%=path%>/test/User_test2" >访问 UserAction的test2方法</a> 
    返回的页面为 /WEB-INF/page/User_test2.jsp如果我需要访问 PersonAction的方法的话 超链接可以这样写
    <a href="<%=path%>/test/Person_test1" >访问 PersonAction的test1方法</a> 
    返回的页面为 /WEB-INF/page/Person_test1.jsp<a href="<%=path%>/test/Person_test2" >访问 PersonAction的test2方法</a> 
    返回的页面为 /WEB-INF/page/Person_test2.jsp
      

  7.   

    sorry 
    配置是这样才对..<package name="itcast" namespace="/test" extends="struts-default">
        <action name="*_*" class="cn.itcast.action.{1}Action" method="{2}">
            <result name="success">/WEB-INF/page/{1}_{2}.jsp</result>
        </action>
    </package>