strust2框架来历简介:
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架。(同时也是一个成熟的基于Web的MVC框架)。
MVC:Model View Controller, model是模型,view是视图,controller是控制器,是一种框架模式.
随着WebWork框架的发展,衍生出了strust2框架,因此strust2框架是WebWork的升级,而不是一个全新的框架,因此稳点性、性能等方面都有很好的保证,而且也同时吸收了struts1框架和WebWork俩者的优点.所以strust2框架也是一个基于Web的MVC框架.。
注意:strust2框架并不是struts1框架的延续或者升级,俩者有着很大的不同。
struts2框架的搭建
1、 获取发布包 :struts2官网 apache github 百度,(如若需要这里有我自己搭框架时的struts2的框架包http://pan.baidu.com/s/1boIZIY7)
2、导包:获取到jar包之后导入到自己的项目中,注意导入的jar包放在自己项目的WebContent\WEB-INF\lib\下面。
-
3、配置web.xml:在web.xml文件中配置struts2框架的过滤器.
这个过滤器的作用:拦截struts2框架中的action.注意:如果不配置这个filter,struts2框架就不能够工作。<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>*.action</url-pattern> </filter-mapping>
-
4、配置struts2核心配置文件 struts.xml:在struts.xml配置action的目的和作用:通知 struts2框架我们写的这个类是一个Action,将来struts2框架中要给这个类创建对象,调用方法以及这个Action加入更多丰富的功能。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> </package> <!-- <include file="example.xml"/> --> </struts>
注意如若在struts.xml里面没有默认提示,则需要自己手动的去给struts.xml文件添加提示,步骤为:
第一步:解压struts2-core-2.3.24.1.jar包,并在文件里面找到struts-2.3.dtd文件,并放在你的项目下的dtd文件中。
第二步:选择eclipse里面Window下面的preference,在搜索框里输入xml,在选择xml catalog,
然后点击add,Location里选择你的dtd文件在项目中的位置,keytype选择URI,然后key为 http://struts.apache.org/dtds/struts-2.3.dtd,最后点击ok即可。
struts2项目开发
-
1、编写Action类:在创建一个bean类之后,我们再创建一个与之对应的Action类,(如我们创建了一个名为User的bean类,再创建一个名为UserAction的Action类),同时注意我们的action类名编写是有一定的规律的,一般为相对应的bean类加上Action借尾的。
一般Action类里面有大量返回值为String类型的方法,如:
public String toLogin(){
System.out.println("跳转到登陆页面");
return "login";
}
-
2、 配置struts.xml:没创建了一个action类或者添加了返回值为String的方法之后都要去struts.xml文件里面去进行相应配置。
<package name="default" namespace="/" extends="struts-default">
<action name="user_*" class="com.wjy.week3.web.action.UserAction" method="{1}"> <result name="login">/WEB-INF/jsp/login.jsp</result> </action> </package>
第一行package中的name属性意思为:表示给当前package起一个名字为default,并且唯一标识这个package。
namespace属性意思为:表示当前package的命名空间为/,将来这个package里面的所有的action在被访问的时候,路径里面都要加上这个命名空间。
extends属性意思为:继承的包名为那个,一般默认为继承struts2里面核心默认包struts-default。
action里面的name标签:表示为将来在游览器要访问这个Action类就要以"user_"开头的名字去匹配。
class:该Action类在你项目中的位置。
method:调用方法匹配的字段,如若name="user__";则method="{2}";
result:返回的结果为什么,则想某个页面跳转。 -
3、测试:当我们把项目部署到服务器并启动服务器的时候,我们就可以在浏览器中输入"http://localhost:8888/week3/user_toLogin.action"的时候就可以访问到我们要跳转的页面了。
注意:struts2框架是默认过滤以".action"结尾的url的,所以我们使用struts2框架访问时都要以.action结尾,否则是访问不到我们所需要的资源的。