最近看了一点struts2的东西,学的稀里糊涂的,先理清搞不明白的几个问题吧,求大侠指点。
1.struts.xml文件中对action进行配置,如果没有通配符那种情况,action的name属性可以自己随便定义,而和类名没有任何关系吗?
2.关于action执行execute函数,有的函数体内直接是return super.execute();如果该action还有其他的方法,那其他方法和execute的执行有什么关系吗?我不明白,如果strute.xml的result name属性里,没有任何和execute里相关的字符串,那execute还会执行吗?

解决方案 »

  1.   

    1 可以随便ID  只要后面CLASS 对应你的类名就可以了2会自动调用返回值String的类型的方法
      

  2.   

    谢谢,但是第二问我还是不明白,execute是会被自动调用的吗?如果其他函数有返回值比如ABC,而execute函数没有,result的name属性是ABC,那这种情况下execute会被执行吗?
      

  3.   

    action 的name 是jsp提交的地址 jsp提交 xxx.action1.jsp找到对应的对应的action的name 找到name就找到struts配置文件中对应的action了2.action属性有个class class是对应那个action的所在的路径 比如 com.action.loginaction 就会找到这个loginaction类了
    3.execute loginaction类要继承一个类才能用 会自动调用这个方法 然后返回
    4.如果该action还有其他的方法,那其他方法和execute的执行有什么关系吗?
    答:struts配置文件中action属性有个method method属性是指向class类所在的方法 比如loginaction类中有个deletetalbe方法 那么method=“deletetalbe” 就会自动找到这个方法了 而不用execute 以后不用用到execute 的 execute 只是给初学者练习怎么使用的 打个基础
    5.如果strute.xml的result name属性里,没有任何和execute里相关的字符串,那execute还会执行吗?
    resut name是方法的返回找到对应页面的地址 比如 deletetalbe 返回 return “success”,resut name="success" 页面是index.jsp 那么就找到index.jsp了 如果没有对应的resut name 不会找到的后面学SSH class不在等于action所在的路径 而是application配置文件中属性
    而且method也不用在写了直接在jsp提交页面中写
    比如一个struts中一个action叫 login_* *代表action中所有的方法
    jsp提交的时候这样写 login_deletetable就会找到deletetable方法了
    不搞java了 以上有瑕疵还请见谅