`
lyunabc
  • 浏览: 528516 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

struts2中Action名称的搜索顺序举例说明

 
阅读更多

Action名称的搜索顺序举例说明

Struts.xml:

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

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

<action name="hello" class="cn.csdn.hr.action.HelloAction"

method="add">

<result>../hello.jsp</result>

</action>

</package>

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

<action name="hello" class="cn.csdn.hr.action.HelloAction"

method="add">

<result>../../hello.jsp</result>

</action>

</package>

</struts>

从以上的代码中可以看出:

第一个package的命名空间为namespace="/cs",action的名字为hello,所访问的类为:cn.csdn.hr.action.HelloAction,访问的类中的方法为add,返回的结果在hello.jsp页面。

第二个page的命名空间为namespace="/cs/test",action的name为hello1,所访问的类为:"cn.csdn.hr.action.HellosAction",访问的类中的方法为:add,返回的页面也是hello.jsp,只是访问的路径不一样.

当我们访问的路径为:

http://localhost:8080/cs/hello.action 的时候可以跳转到../hello.jsp 这个页面。

当我们访问路径为:

http://localhost:8080/cs/test/hello.action 的时候,它可以跳转到../../hello.jsp这个页面。

当我们访问的路径为:

http://localhost:8080/cs/test1/hello.action 的时候,因为没有test1这个路径,所以struts2会自动的找 http://localhost:8080/cs 路径下看有没有name为hello的action,如果有的话就直接执行cs下的package下的result,去跳转。

Action访问的路径是逐个寻找的

注:

当HelloAction继承ActionSupport之后,里面的方法只有默认的方法时,可以省略class 如果想要访问HelloAction中的其他方法,用method来访问,访问时必须要自定class的路径

Java类:

package cn.csdn.hr.action;

import com.opensymphony.xwork2.ActionSupport;

//action为普通的java类 可以继承接口 Action

public class HelloAction extends ActionSupport{

private static final long serialVersionUID = 1L;

//默认的方法是execute,方法必须是string类型的

@Override

public String execute() throws Exception {

System.out.println("你 执行了!吧!");

//直接返回success

return SUCCESS;

}

public String add() throws Exception {

System.out.println("你 执行了!吧!=============");

//直接返回success

return SUCCESS;

}

}

分享到:
评论

相关推荐

    java面试题

    举例说明。 11 14. 简述synchronized和java.util.concurrent.locks.Lock的异同 ? 11 15. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 11 16. abstract class和interface...

    ARCH4系统开发指南

    2.28.2 Struts2校验框架应用 71 2.28.2.1 校验配置文件 71 2.28.2.2 角色Insert页面示例 71 2.28.2.3 用户Query页面示例 73 2.28.2.4 多行输入域校验 75 2.29 多语言管理 77 2.29.1 定义输入域的name属性和资源文件 ...

    Java面试宝典2010版

    举例说明。 49. 下面两个方法同步吗?(自己发明) 50、多线程有几种实现方法?同步有几种实现方法? 51、启动一个线程是用run()还是start()? . 52、当一个线程进入一个对象的一个synchronized方法后,其它线程...

    最新Java面试宝典pdf版

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    Java面试笔试资料大全

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    JAVA面试宝典2010

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    Java面试宝典-经典

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    java面试题大全(2012版)

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    Java面试宝典2012版

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后...

    java面试宝典2012

    举例说明。 36 49. 下面两个方法同步吗?(自己发明) 36 50、多线程有几种实现方法?同步有几种实现方法? 36 51、启动一个线程是用run()还是start()? . 37 52、当一个线程进入一个对象的一个synchronized方法后,...

    Java面试宝典2012新版

    举例说明。 32 49. 下面两个方法同步吗?(自己发明) 33 50、多线程有几种实现方法?同步有几种实现方法? 33 51、启动一个线程是用run()还是start()? . 33 52、当一个线程进入一个对象的一个synchronized方法后,...

    freemarker总结

    使用import指令导入库到模板中,Freemarker会为导入的库创建新的名字空间,并可以通过import指令中指定的散列变量访问库中的变量: ${my.mail} ${mail} 输出结果: &lt;p&gt;Copyright (C) 1999-2002 ...

    超级有影响力霸气的Java面试题大全文档

    举例说明。  如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要...

    java 面试题 总结

    举例说明。 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要...

    Java 面试宝典

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? .......................................................................................................

Global site tag (gtag.js) - Google Analytics