Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
配置struts2
1.下载struts2插件,网址:http://struts.apache.org/download.cgi#struts251
2.解压压缩包,我的版本是struts-2.3.28.1-all
3.根目录下有一个文件夹apps,该文件夹中有一个struts2-blank的文件夹,该文件夹是存储的一个struts2的示例程序
4.WEB-INF下lib文件夹中的jar包就是一个基本struts2工程所要使用的jar包
struts2 HelloWorld
1.新建web工程,将所需要用的jar包导入WEB-INF文件夹下的lib中
2.配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- 配置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>/*</url-pattern> </filter-mapping> </web-app>
3.新建Action的java类,可以继承ActionSupport类,也可以不继承,对每一个变量设置getter()、setter()方法,此处的变量就是页面中出现的变量,struts2会通过setter()方法对这些变量自动的赋值
package com.test; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport{ private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String execute() throws Exception { return SUCCESS; } }
4.配置struts.xml文件,action的name属性是作为url来使用的,一般写作helloworld.action或helloworld.do这个可以通过配置来改变
<?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> <package name="helloworld" extends="struts-default" > <!-- 配置Action,若Action不指定method,默认是execute()方法 --> <action name="hello" class="com.test.HelloWorld"> <!-- Action执行之后的返回结果,result不指定name属性,默认是SUCCESS 不同的name值可以指向不同的结果 --> <result>/hello.jsp</result> </action> </package> </struts>
5.请求页面,使用一个<a>标签去访问Action
<a href="hello.action?name=jack">Hello</a>
至此struts2的HelloWorld已经搭建成功,其中web.xml配置是不变的,而struts.xml的配置是根据’需求改变的