struts2浅谈Action

Action动作包含了业务逻辑、承载数据、选择返回的结果

是框架的核心。

1、封装了业务逻辑单元

使用execute()方法来实现这个功能

public String execute(){

//业务逻辑调用
return "SUCCESS";

}

这个方法只关注与请求有关的业务逻辑。

复杂的业务逻辑卡哇伊封装成一个业务组件,利用依赖注入把组件注入到动作里,可以通过Spring集成注入组件的技术。

2、为数据传输提供场所(三种方式)

一、把承载的数据实现为java bean属性(其实就是通过getter,setter方法操作属性)

在action里

private String name;

getName();

setName();

二、使用对象支持的属性。

三、使用模型驱动公开数据

public class LoginAction extends ActionSupport implements ModelDriven{

private User user=new User();

...

//复写getModel()方法

public Object getModel(){

return user;

}

}

注意:模型驱动的动作在execute()方法在调用的时候,框架已经获得了对象模型的引用,请求的过程当中会一直使用他,如果动作内部改变了模型字段,可能会导致一些数据不一致的问题。

3、动作为结果路由选择返回控制字符串

<action name="login">
    <result name="success">
        /success.jsp
    </result>
    <result name="error">
        /error.jsp
    </result>
</action>

SUCCESS就是一个结果组件的名字。

structs2的包属性:

Name:包的名字

namespace:包内所有动作的命名空间 映射的URL就必须带上命名空间来访问

extends:被继承的父包 这对默认组件的使用起到很大的作用。extends structs-default

(!省略了继承等于拒绝了框架的核心功能!)

实现动作(Action接口)

ActionSupport类提供了Action接口和其他几个有用接口的默认实现类.

基于拦截器的文件上传

首先要在配置文件里追加到默认拦截器栈

要定义在param之前

fileUpload拦截器提供的请求参数:

File---->被上传的文件

ContentType String--->文件的内容类型

FileName String--->存储在服务器上的上传文件名

前端:
<s:form action="upload" method="post" enctype="multipart/form-data">
<s:file name="file" label="上传文件"/>
<s:submit/>
</s:form>

后台:

java bean 封装文件的参数:


private File file;

private String contentType;

private String fileName;


多个文件的话就是File[]、String[]、String[]
#Java工程师#
全部评论
棒哦~~
点赞 回复 分享
发布于 2016-11-10 13:45

相关推荐

07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务