浅谈Struts2

计应134(实验班) 张人川

一、Struts2的优点:

在软件设计上Struts2没有像Struts1那样和Servlet AP紧密的耦合。Strus2设计属于无侵入设计。

Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。

Struts2提供了类型转换器,我们可以吧特殊的请求参数转换成需要的类型。

Struts2提供支持多种表现层技术,如JSP,freeMarker,Velocity

Struts2的输入校验可以对指定方法进行校验

提供了全局范围,包范围和Action范围的国际化资源文件实现

二、Struts2开发环境

找到Struts2应用需要的用到的jar文件

Struts2-core-2.x.x.jar

Xwork-2.x.x.jar

Ognl-2.6.x.jar

Freemarker-2.3.x.jar

Commons-logging-1.1.x..jar

Commons-fileupload.1.2.1.jar

编写Struts2的配置文件

在web.xml中加入Struts2框架的启动配置

三、第一Struts2应用

struts.xml

<struts>

<package name=”itcast” namespace=”/test” extends=struts-default”>

<action name=”helloworld” class=”cn.itcast.action.HelloWorldAction” method=”execute”>

<result name=”success”>/WEB-INF/page/hello.jsp</result>

</action>

</package>

</sruts>

HelloWorldAction

public class HelloWorldAction{

private String message;

public String getMessage(){

return message;

}

public String execute(){

message=”我的第一个struts应用”;

return “success”;

}

}

四、Action的搜索顺序(请求路径:http://server/struts2/path1/path2/path3/test.action)

首先寻找namespace为path1/path2/path3的package,如果不存在这个package则执行步骤2;如果存在,则在这个package种找名字为test的action,如果找不到test.action则取默认命名空间(不设置namespace或namespace=““)去找;

寻找path1/path2

寻找path1

寻找namespace为/的pachage,找不到去默认命名空间

五、Action配置中的各项默认值

如果没有为action指定class,默认是ActionSupport

如果没有为action指定method,默认是execute()方法

如果没有指定result的name属性,默认值为success

例:

直接跳转到一个视图

<action name=”addUI”>

<result>/WEB-IFO/page/employeeAdd.jsp</result>

</action>

时间: 2024-08-06 11:54:21

浅谈Struts2的相关文章

浅谈struts2标签中的2个很常用的标签的用法(radio和select)

1.如图所示我们需要在前台的页面通过radio和select将对应的数据库中的数据显示到选项当中,这也是我们做项目中经常需要做的,动态的显示,而不是静态的显示. 首先我们需要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码如下: <input type="RADIO" name="sex"

浅谈Struts2的拦截器

拦截器:       在谈拦截器之前,我觉得有必要提一下和过滤器的区别.     1. 首先拦截器是Struts2自己的,只有用了Struts2框架才可以使用拦截器,而过滤器是servlet规范中的一部分,任何java web工程都可以使用: 2. 其次拦截器只可以拦截Action,而过滤器理论上可以拦截任何东西(jsp,html,css,image或者js等). 拦截器配置(在Struts2.xml中进行): 1 <package name="default" extends=

浅谈Struts2(三)

一.Struts2收集client的参数 核心思路: <form method="post" action="XXXX"> <input type="text" name="username"/> <input type="text" name="password"/> <input type="text" name=&quo

浅谈struts2的国际化----i18n

可能大家在使用struts框架的时候,偶尔会看到这个词: i18n.也就是 Internationalization    i 开头,n 结尾, 总共18个字母,今天的主要内容就是围绕这 四个字母. struts2国际化是建立在 java 国际化的基础上的,通过提供不同国家.语言环境的消息资源,然后通过 ResourceBundle 加载指定Locale 对应的资源文件,取得文件中指定的 key 对应的信息. Locale 对象表示了特定的地理.政治和文化地区.需要 Locale 来执行其任务的

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

浅谈Struts2拦截器的原理与实现

拦截器与过滤器           拦截器是对调用的Action起作用,它提供了一种机制可以使开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可重用的部分的方式,很多业务逻辑都是靠拦截实现的,比如校验,验证登录权限(比如下载时跳转到登陆页面)等等.     过滤器是对整个的请求过程起作用!换句话说就是拦截器没有过滤器的范围广.过滤器是在java web中,你传入的request,response提前过滤掉一些信息

浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

1.如图所看到的我们须要在前台的页面通过radio和select将相应的数据库中的数据显示到选项其中,这也是我们做项目中常常须要做的,动态的显示,而不是静态的显示. 首先我们须要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码例如以下: <input type="RADIO" name="sex&qu

浅谈Struts2(二)

一.struts2的跳转 1.action跳转JSP a.默认为forward <action name="action1" class="com.liquidxu.struts2.FirstAction"> <result name="success" type="dispatcher">/admin/index.jsp</result> </action> <resul

浅谈 Struts2 拦截器

Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后处理一些逻辑.拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑.事实上,即使struts.xml 没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上(default Stack  默认拦截器栈中params拦截器). Struts2中自定义拦截器的步骤是: 1.定义拦截器类 2.为Action配置自定义的