您的位置:首页 > 编程语言 > Java开发

Struts2

2015-06-11 22:43 639 查看
计应134(实验班) 杨伟

struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。

strutsstruts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。struts提供的类使得开发工作更加简单,这些类包括:实现和执行程序事务逻辑的类

自定义的标记库使得创建和验证HTML表单更加容易

文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。在lib目录中有使用struts创建应用程序是所需的文件。

1 jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API类。如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INF\lib下

2 Struts.jar 包含struts中所有的java类。同样也需要拷贝到WEB-INF\lib下

3 *.tld 标记库描述器文件,描述了多个struts标记库中的自定义标记。同样要拷贝到WEB-INF\lib下

在webapps目录下有如下文件:

1 Struts-blank.war 一个简单的web应用程序

2 Struts-documentation.war 包含struts站点上所有struts文档

3 Struts-example.war Struts很多特性的示范

4 Struts-exercisetaglib.war 主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记

5 Struts-template.war 包含struts模板标记的介绍和范例

6 Struts-upload.war 一个简单的例子,示范如何使用struts框架上传文件让我们从MVC角度观察struts框架中的组件,框架中三个部分:模型,视窗和控制器。

安装Struts2 这一步对于Struts1.x和Struts2都是必须的,只是安装的方法不同。Struts1的入口点是一 个Servlet,而Struts2的入口点是一个过滤器(Filter)。因此,Struts2要按过滤器的方式配置。

下面是在web.xml中配置Struts2的代码:

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

这一步和Struts1.x也必须进行。只是Struts1.x中的动作类必须从Action类中继承,而Struts2.x的动作类需要从com.opensymphony.xwork2.ActionSupport类继承。下面是计算两个整数代码和的Action类,代码如下:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class FirstAction extends ActionSupport

{

private int operand1;

private int operand2;

public String execute() throws Exception

{

if (getSum()>=0)//如果代码数和是非负整数,跳到positive.jsp页面

{

return "positive";

}

else//如果代码数和是负整数,跳到negative.jsp页面

{ return "negative";

}

}

public int getOperand1()

{

return operand1;

}

public void setOperand1(int operand1)

{

System.out.println(operand1);

this.operand1=operand1;

}

public int getOperand2()

{

return operand2;

}

public void setOperand2(int operand2)

{

System.out.println(operand2);

this.operand2=operand2;

}

public int getSum()

{

return operand1+operand2;//计算两个整数的代码数和

}

}

从上面的代码可以看出,动作类的一个特征就是要覆盖execute方法,只是Struts2的execute方法没有参数了,而Struts1.x的execute方法有四个参数。而且execute方法的返回值也不同的。Struts2只返回一String,用于表述执行结果(就是一个标志)。上面代码的其他部分将在下面讲解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: