java中的action是指什么_Struts2【开发Action】知识要点

  • Post author:
  • Post category:java


前言

前面Struts博文基本把Struts的配置信息讲解完了…..本博文主要讲解Struts对数据的处理

Action开发的三种方式

在第一次我们写开发步骤的时候,我们写的Action是继承着ActionSupport类的…为啥我们继承了ActionSupport类呢?下面我就会讲解到

继承ActionSupport类

我们来看一下ActionSupport干了什么:

76041990d75acba8644b402a18447205.png

也就是说,如果我们在Action类中需要用到Struts为我们提供的数据校验等Struts已经帮我们实现的功能,我们就继承着ActionSupport类..

实现Action接口

我们再来看看Action接口干了什么:

0654d378deafe45530713a26556a21ac.png

当然啦,ActionSuppot也继承着Action接口,所以ActionSuppot拥有Action接口的全部功能….因此,这种开发方式我们是比较少用的…

不继承任何类、不实现任何接口

开发此类的Action,它是不继承任何类、不实现任何接口的…也就是说,它就是一个普通的Java类….

Action类

public class PrivilegeAction {

public String login() {

System.out.println(“我是普通的javaAction,不继承任何的类、不实现任何的接口”);

return “success”;

}

}

在配置文件中配置:

/index.jsp

效果:

523ff402620a4572a8a15ae0f00aeba2.png

小总结

如果我们使用到了Struts2一些特用的功能,我们就需要继承ActionSupport

如果我们没用到Struts2的特殊功能,只要平凡写一个Java类行了。

大多情况下,我们还是会继承ActionSupport的。

请求数据封装

一般地,我们使用Servlet的时候都是分为几个步骤的:

得到web层的数据、封装数据

调用service层的逻辑业务代码

将数据保存在域对象中,跳转到对应的JSP页面

现在问题来了,我们自己编写的Action类是没有request、response、Session、application之类的对象的….我们是怎么得到web层的数据、再将数据存到域对象中的呢??

前面已经说过了,Struts预先帮我们完成了对数据封装的功能,它是通过params拦截器来实现数据封装的

register.jsp

首先,我们填写表单页面的数据,请求Action处理数据

用户名:

密码:

年龄:

生日:

Action封装基本信息

在Action设置与JSP页面相同的属性,并为它们编写setter方法

private String username;

private String psd;

private int age;

private Date birthday;

public void setUsername(String username) {

this.username = username;

}

public void setPsd(String psd) {

this.psd = psd;

}

public void setAge(int age) {

this.age = age;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

我们直接在业务方法中访问这些变量,看是否能得到表单的值。

4820a72b33bc7af476da9c6d545823c5.png

Action封装对象

一般地,我们注册的时候,都是在Servlet上把基本信息封装到对象上…那么在Struts怎么做呢?

创建一个User类,基本的信息和JSP页面是相同的。

package qwer;

import java.util.Date;

/**

* Created by ozc on 2017/4/27.

*/

public class User {

private String username;

private String psd;

private int age;

private Date birthday;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPsd() {

return psd;

}

public void setPsd(String psd) {

this.psd = psd;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

}

在Action中定义User对象出来,并给出s



版权声明:本文为weixin_29370183原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。