精华内容
下载资源
问答
  • 创建struts action三种方式

    千次阅读 2016-08-07 20:27:26
    第一: 创建一个普通的Java类,但是类中必须得有execute()方法,如下 public class FirstAction { public String execute() throws Exception{ System.out.println("in FirstAction method execute()"); ...

    第一种:

    创建一个普通的Java类,但是类中必须得有execute()方法,如下

    public class FirstAction {
    	public String execute() throws Exception{
    		System.out.println("in FirstAction method execute()");
    		return "success";
    	}
    }

    当写好了java类之后,需要对struts.xml文件进行配置,配置的方法如下

    <action name="first" class="com.st.web.action.FirstAction">
                <result name="success" >
                	/success.jsp
                </result>
    </action>

    这里面的class中com.st.web.action是报名,后面的FirstAction为类名,而result中的name则是FirstAction类中的返回值,结果集将调到success.jsp中,由于只是演示,所以jsp中只写了 成功两个字

    在这里需要写一个提交的小按钮来测试一下,代码如下

      <body>
      	<form action="first" method="post" name="form1">
      		<input type="submit" value="提交">
      	</form>
      </body>
    当点击提交按钮时,触发到first,action里就转到了类里面将输出语句输出来,然后又回到结果集里输出success.jsp里的东西,当然这些都是部署在tomcat上的。

    第二种:

    第二种就是比较简单了,就是实现com.opensymphony.xwork2.Action下的Action借口,在实现了接口后再实现接口的execute()方法。

    第三种:

    第三种一般用得最多,大多数人也推荐用第三种,就是继承com.opensymphony.xwork2.ActionSupport下的ActionSupport类,同样也需要execute()方法。

    总结一下

    由于这是自己第一次写博客,感觉到自己有很多东西不能叙述清楚,希望各位多多包含。

    补充一下,自己差点忘了最重要的一点,需要配置web.xml,配置代码如下

        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>

    谢谢大家




    展开全文
  • Action类的三种创建方式

    千次阅读 2017-04-12 22:04:13
    1、创建一个pojo类 这个可以参考第一篇博客,创建的简单登录校验 pojo其实就是一个简单的java类 它没有实现任何接口,也没有继承任何类。 优点:无耦合 适用于逻辑相对简单的action 2、实现Action接口 ...

    1、创建一个pojo类

    这个可以参考第一篇博客,创建的简单登录校验

    pojo其实就是一个简单的java类

    它没有实现任何接口,也没有继承任何类。

    优点:无耦合

    适用于逻辑相对简单的action


    2、实现Action接口

    com.opensymphony.xwork2.Action

    这个接口里有五个常量属性和一个方法



    属性:

    success:成功视图

    none:代表返回null,不做任何操作(跳转操作也不会做)

    error:错误视图

    input:这是struts2框架中interceptor中发现问题后会访问的一个视图

    login:一个登录视图,可用于权限操作


    方法:

    execute:将要执行的方法,需要重写此方法,


    3、继承ActionSupport类

    com.opensymphony.xwork2.ActionSupport


    此类也实现了Action接口

    因为它具有丰富的功能,如表单校验 错误信息 设置国际化等,所以常在开发中使用,但也同样有高耦合的问题


    请多多关照:qq183428067


    展开全文
  • 创建Action的两种方式Spring和Struts

    千次阅读 2017-02-01 21:44:30
    1.action创建交给Spring Action中的userService已经在applicationContext.xml配置,只需要把这个Action在applicationContext.xml中重新配置下 在struts配置Action时,class属性不是原来Action类的位置...

    1.action的创建交给Spring

    Action中的userService已经在applicationContext.xml配置,只需要把这个Action在applicationContext.xml中重新配置下

    <bean id="userAction" class="com.domain.UserAction>

    <property name="userService" ref="userService"/>

    </bean>

    在struts配置Action时,class属性不是原来Action类的位置(不然无法获取userService),  因此class应该写bean中的别名。 

    若是使用别名,则默认从spring容器中获得内容,getBean("userAction");

    默认是获得单例,若是没有获得内容,将自己创建。

    Spring中scope默认为singleton,  就是每次共用一个Action,但Action不是线程安全的,故applicationContext.xml中配置Action 有一属性scope 设其值为prototype,要求每一个线程创建一个独立的Action。

    2.action的创建交给Struts

    实际上只要保持Action中属性的属性名与applicationContext.xml中的bean名字相同,便会自动注入。不需要配置applicationContext.xml

    比如说:直接在struts.xml中配置  <action name="userAction" class="com.domain.UserAction">....</action>

    然后这个Action类中Field有一属性UserService userService, 恰好有一bean name="userService"在applicationContext.xml中配置,则只需要给userService加上set方法,便可实现自动注入。


    展开全文
  • spring创建对象的三种方式详解

    万次阅读 2018-01-18 17:29:37
    本文主要讲解IOC容器创建对象的三种方式创建对象的三种方式1) 调用无参数构造器 2) 带参数构造器 3) 工厂创建对象 包括:3.1 工厂类,静态方法创建对象 3.2 工厂类,非静态方法创建对象1.调用无参数的...

    前言

    我们知道spring框架的核心就是IOC容器了,那么IOC容器主要的作用就是创建对象和处理对象之间的依赖关系。本文主要讲解IOC容器创建对象的三种方式。

    创建对象的三种方式

    1) 调用无参数构造器
    2) 带参数构造器
    3) 工厂创建对象
    包括:3.1 工厂类,静态方法创建对象
    3.2 工厂类,非静态方法创建对象

    1.调用无参数的构造器

    具体如下:
    User.java

    public class User {
    
        private int id;
        private String name;
    
    
    
        public User() {
            super();
            System.out.println("------User对象创建【无参数构造器】------");
        }
    
    
        public User(int id, String name) {
            System.out.println("-----User对象创建【带参数构造器】--------");
            this.id = id;
            this.name = name;
        }
    
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
    
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + "]";
        }
    }

    Bean.xml配置如下:

    <!-- 1. 默认无参数构造器 -->
        <bean id="user1" class="com.nwpu.geeker.User"></bean>

    测试:

    // 测试:对象创建
        @Test
        public void testIOC() throws Exception {
            // 创建IOC容器对象
            ApplicationContext ac = new ClassPathXmlApplicationContext("com/nwpu/geeker/bean.xml");
            // 获取容器中的对象
            User user = (User) ac.getBean("user");
    
            System.out.println(user);
        }

    2.带参数构造器创建对象

    例如:上面的user.java 有带参的构造器,参数列表为(int,string).一般依赖注入对象的时候用的比较多。
    配置如下:

    <!-- 2. 带参数构造器 -->
        <bean id="user2" class="com.nwpu.geeker..User">
            <constructor-arg index="0" type="int" value="100"></constructor-arg>
            <constructor-arg index="1" type="java.lang.String" value="Jack"></constructor-arg>
        </bean>

    其中index属性表示参数的位置。Type表示类型,value表示赋值,还有一个ref属性下面将会介绍,表示可以引用IOC容器创建好的(已存在的)对象。
    配置如下:

    <!-- 定义一个字符串,值是"Jack" ;  String s = new String("jack")-->
        <bean id="str" class="java.lang.String">
            <constructor-arg value="Jacks"></constructor-arg>
        </bean>
        <bean id="user3" class="com.nwpu.geeker.User">
            <constructor-arg index="0" type="int" value="100"></constructor-arg>
            <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>
        </bean>

    ref属性引用的就是IOC容器创建对象的id属性值。

    3.通过工厂类创建对象

    3.1 通过实例化工厂,非静态方法创建对象
    先创建工厂javaBean

    // 工厂,创建对象
    public class ObjectFactory {
    
        // 实例方法创建对象
        public User getInstance() {
            return new User(100,"工厂:调用实例方法");
        }
    
        // 静态方法创建对象
        public static User getStaticInstance() {
            return new User(101,"工厂:调用静态方法");
        }
    }

    配置文件:

    <!-- # 3.1 工厂类,实例方法 -->
        <!-- 先创建工厂 -->
        <bean id="factory" class="com.nwpu.geeker.ObjectFactory"></bean>
        <!-- 在创建user对象,用factory方的实例方法 -->
        <bean id="user4" factory-bean="factory" factory-method="getInstance"></bean>

    其中: factory-bean=”factory”指定工厂。factory-method=”getInstance”指定工厂的哪个方法。

    3.2 工厂类: 静态方法创建对象

    <bean id="user" class="com.nwpu.geeker.ObjectFactory" factory-method="getStaticInstance"></bean>

    class 指定的就是工厂类型,这里是和上面配置不同的地方。
    factory-method 一定是工厂里面的“静态方法”

    创建对象的细节问题

    1) 对象创建: 单例/多例
    在bean.xml配置文件中,配置scope=”singleton”,为单例创建对象,如果不配置,默认也是单例方式。主要应用于service/dao层还有一些utils工具类等只需要在服务器启动时初始化一次即可。
    scope=”prototype”,表示多例方式创建对象,也就是当用户需要使用这个对象时即创建对象,在ssh项目整合中主要应用于Action对象。这种方式一般在服务器启动时不会创建对象,在每次使用才创建。

    2) 什么时候创建?上面其实已经说了
    scope=”prototype” 在用到对象的时候,才创建对象。(在ioc容器初始化之后)
    scope=”singleton” 在服务器启动时候(容器初始化之前), 就已经创建了bean,且整个应用只有一个。

    3)是否延迟创建
    lazy-init=”false” 默认为false, 不延迟创建,即在启动时候就创建对象
    lazy-init=”true” 延迟初始化, 在用到对象的时候才创建对象
    (只对单例有效)因为多例本来就是访问对象时才创建。

    4) 创建对象之后,初始化/销毁
    init-method=”init_user” 【对应对象的init_user方法,在对象创建好之后执行 】
    destroy-method=”destroy_user” 【在调用容器对象的destroy方法时候执行,(容器用实现类)】

    public class User {
    
        private int id;
        private String name;
    
    
    
        public User() {
            super();
            System.out.println("------User对象创建------");
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
        public void init_user() {
            System.out.println("创建对象之后,初始化");
        }
        public void destroy_user() {
            System.out.println("IOC容器销毁,user对象回收!");
        }
    
    }

    测试:

    @Test
        public void testIOC() throws Exception {
            // 得到IOC容器对象  【用实现类,因为要调用销毁的方法】
            ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("com/nwpu/geeker/applicationContext.xml");
            System.out.println("-----容器创建-----");
    
            // 从容器中获取bean
            User user1 = (User) ac.getBean("user");
            User user2 = (User) ac.getBean("user");
    
            System.out.println(user1);
            System.out.println(user2);
    
            // 销毁容器对象 
            ac.destroy();
        }
    
        @Test
        public void test() throws Exception {
            // 容器对象
            ApplicationContext ac = new ClassPathXmlApplicationContext("com/nwpu/geeker/applicationContext.xml");
            System.out.println("-----容器创建完成-----");
            User user1 = (User) ac.getBean("user1");
        }
    展开全文
  • Action 中获取表单数据的三种方式

    万次阅读 2016-11-12 12:01:52
    Action 中获取表单提交数据的三种方式:(1)使用ActionContext类来获取。(2)使用ServletActionContext类获取。(3)使用接口注入的方式获取。
  • struts2中的Action三种方式接收前台的数据: 1.基本数据类型的属性对应 2.域对象的对应 3.模型对应 前两是属于属性驱动FieldDriven,后面一是模型驱动ModelDriven 第一: 前台代码: 账号 密码 ...
  • struts2通配符及Action开发的三种方式

    千次阅读 2017-04-16 12:20:56
    1)准备一个UserAction.java,这个Action中有两个方法login()和register() package com.bighuan.a_config; import com.opensymphony.xwork2.ActionSupport; /** * @author bighuan */ public class UserAction ex
  • 现在都很流行在桌面上为自己的应用创建快捷方式,网上也很多例子,但是基本都是同一个,创建快捷方式的手法是对的,但是通过快捷方式开启自己的应用的时候会发现程序菜单里头打开的应用和桌面快捷方式打开的应用竟然...
  • 第十九篇 zabbix创建Action

    万次阅读 2016-11-22 16:30:12
    Zabbix的功能就是用用来进行监控的,当监控的对象出现问题时我们就需要告知维修人员及时过来维修,那么从监控,到出现监控异常,将监控异常报告给维修人员这一系列动作需要zabbix的Action来关联完成。 点击配置-》...
  • 总结struts2 Action的四实现方式

    万次阅读 2016-11-04 19:05:58
    总结struts2 Action的实现方式
  • spark创建DF的两种方式

    千次阅读 2018-11-20 23:52:10
    方式一:反射:(使用这种方式创建DF是在你知道字段具体有哪些) 1.创建一个SparkContext,然后再创建SQLContext 2.先创建RDD,对数据进行整理,然后关联case class,将非结构化的数据转换成结构化数据 3.显示的调用...
  • 在XFire中创建WebService客户端的三种常用方式

    万次阅读 热门讨论 2010-12-17 19:02:00
    的相关应用,具体的三种方式如下 ① 通过WSDL地址来创建动态客户端 ② 通过服务端提供的接口来创建客户端 ③ 使用Ant通过WSDL文件来生成客户端 第一种方式:通过WSDL地址来创建动态客户端 ...
  • Go语言httpServer创建路由的几种方式

    千次阅读 2017-09-19 15:31:33
    Go语言创建一个HTTP服务器时,三种创建路由的方法
  • 创建ASM磁盘有两种方式

    万次阅读 2012-06-05 16:50:58
    创建ASM磁盘有两种方式,本来很简单,但是我一直混淆了很久,所以在这里总结一下下。随便选一都可以,使用ASMlib方式方式就需要安装对应内核版本的rpm包,而且Oracle只支持linux平台的ASMlib rpm包。而且redhat6.0...
  • 说明:创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式。 上篇博客地址:http://blog.csdn.net/qq_26525215/article/details/51942252简单的用户注册功能(我们设置...
  • RDD:创建的几种方式(scala和java)

    千次阅读 2018-09-19 11:58:56
    Spark编程 每一个spark应用程序都...spark提供的最主要的抽象概念有两: 弹性分布式数据集(resilient distributed dataset)简称RDD ,他是一个元素集合,被分区地分布到集群的不同节点上,可以被并行操作,RD...
  • Android三种播放视频的方式

    万次阅读 多人点赞 2012-01-28 19:16:38
    在Android中,我们有三种方式来实现视频的播放: 1、使用其自带的播放器。指定ActionACTION_VIEW,Data为Uri,Type为其MIME类型。 2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现...
  • cocos2dx 创建动画的几种方式

    千次阅读 2016-03-21 09:44:04
    使用大图创建帧动画// 首先将大图添加到缓存 SpriteFrameCache::getInstance()->addSpriteFramesWithFile(大... (是一对尖括号)// 通过名字的方式从缓存中查找到图片并创建精灵帧 sf2.pushBack(SpriteFrameCache::get
  • Android创建桌面快捷方式

    千次阅读 2015-12-29 19:54:44
    Android创建桌面快捷方式 如果我们手机用的是比较原生的Android系统,那么我们安装应用以后,要点击应用页面,才能找到我们的应用,为了方便,我们一般会手动把常用的应用在桌面创建一个快捷方式,这个步骤也可以在...
  • Java接入Spark之创建RDD的两种方式和操作RDD

    万次阅读 多人点赞 2016-06-02 21:49:20
    Java接入Spark之创建RDD的两种方式和操作RDD
  • 兔八哥笔记33:AppFuse之创建Action

    千次阅读 2004-12-14 11:13:00
    创建Action和JSP本章将向你展示怎样创建Action和JSP。这部分内容依赖Part II: 创建Manager。关于本章本章将向你展示怎样创建一个Struts的Action, 一个JUnit Test (使用StrutsTestCase ),和一个包含form的JSP。我们...
  • 1,创建Action类  并在类上加注解@Controller 和 @Scope("prototype") 2,写其中的方法  CRUD的6个方法(方法名、返回值、注释) 3,创建JSP页面 4,配置struts.xml
  • 浅谈ActionForward的三种重定向

    万次阅读 2014-06-11 08:53:52
    ActionForward是 Struts的核心...在基于Struts的Web应用程序开发过程中,Action操作完毕后程序会通过Struts的配置文件struts- config.xml链接到指定的ActionForward,传到Struts的核心类ActionServlet,ActionServlet使
  • 创建ASM磁盘(三种方法)

    千次阅读 2014-10-01 11:46:33
    a....使用root帐户修改/etc/udev/rules.d/60-raw.rules 按如下方式添加磁盘 [root@oradb ~]# cat /etc/udev/rules.d/60-raw.rules --查看添加的内容 ACTION=="add", KERNEL=="sdd1", RUN
  • 在JSP中调用Action的几种方式

    万次阅读 2008-02-28 08:41:00
    第一:用JS来实现,写一方法script type="text/javascript" > function invoke(){ window.... } Script> 第二:有Java来实现在上面加上一段java代码 ,创建httpUrlConnetion去调,这样可以获得返回值
  • android 创建快捷方式的两途径

    千次阅读 2012-05-28 21:21:43
    ... android:exported="true" android:icon="@drawable/ic_switcher_...总结:一般做法是在设置里面加上手动创建快捷方式的设置。  在程序第一次启动的时候,手动创建一次快捷方式。    
  • UINavigationController是iOS开发中很常用的一组件,由于种种原因许多人喜欢从代码创建视图控件,包括UINavigationController,但是有时候我们的屏幕控件太多,一方面使用storyboard可以方便设计,但是另一方面又...
  • ActionForward是 Struts的核心...在基于Struts的Web应用程序开发过程中,Action操作完毕后程序会通过Struts的配置文件struts- config.xml链接到指定的ActionForward,传到Struts的核心类ActionServlet,ActionServlet使

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 655,033
精华内容 262,013
关键字:

创建action的三种方式