首页 > 代码库 > struts2之一

struts2之一

在javaweb平台上 struts是有着很强大功能的框架,从struts1.x到struts2.x不断更新....

 本人今天学习了struts2框架,用的是struts-2.3.1.2-all这个版本

 学习struts之前先简单说说servlet (就是一个处理请求的类) 大家知道jsp的请求可以提交给一个servlet,然后由servlet进行一系列的转换再返回给某个对象,但是servlet中的变量一般都要放在方法里面(为局部变量),servlet中的成员变量为每次请求所共有,所以每次请求都要写一个单独servlet,非常繁琐。struts框架就是在servlet的基础上加以改进,通过各种配置来控制程序的运行....废话就说这么多...

 

例子开始:

 

第一步:建web项目

用myeclipse新建一个web项目struts2test  (和平时建立web项目一样)  

 

第二步:导入jar包

解压你所下载的struts2压缩包,在文件夹lib中找到这么几个jar文件拷贝到web项目中的lib文件夹下:

QQ截图20120706204902

然后再在web.xml文件中配置如下过滤器:

<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>

第三步:在src目录下新建struts.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>

<package name="struts2" extends="struts-default"><!--  name="struts" 随便起名字和项目名字没关系—>

      

</package>

    </struts>

第四部:将项目部署到tomcat6容器上,并启动tomcat6 !成功配置struts2框架

 

下面写个简单的程序来测试struts框架:

第一步:

在src目录下建一个包: com.test.action

bean这个包中建立一个类Action1并让他继承自com.opensymphony.xwork2.ActionSupport类

内容如下:

public class Action1 extends ActionSupport {
    private String username;
    private String password;


       public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String execute() throws Exception {
               return SUCCESS;
    }
 

第二步:建立jsp页面first.jsp:

 

<body>
   <form action="action1.action">
       username:<input type="text" name="username"><br>
       password:<input type="password" name="password"><br>
    <input type="submit" value="http://www.mamicode.com/submit">
   </form>
  </body>

 

第三步:在struts.xml中加入如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<package name="struts2" extends="struts-default"><!-- name="struts" 随便起名字和项目名字没关系—>

   <action name="action1" class="com.test.action.Action1">
        <result name="success">/success.jsp</result>

 

</package>

</struts>

 

第四部:编写success.jsp页面

<body>
   username: ${requestScope.username }<br>
   password: ${requestScope.password }

</body>

最后启动tomact 在浏览器中请求第一个first.jsp

输入用户名和密码

点击确定后,该jsp页面请求的对象为action1.action 流程就会转到struts.xml中映射到action1真正对应的Action1这个类

然后在Action1类中自动调用setUsername(String username) 和setPassword(String password)方法

并将结果放到request作用域范围内,最后程序自动调用(自动调用是通过动态代理实现,改天单独介绍....)Action1类中public String execute()返回SUCCESS 方法然后再进入到struts.xml中的这句<result name="success">/success.jsp</result>流程转换到success.jsp页面。ok!!!

以上内容存在很多细节问题,sturts的其它用法(如校验等等)请见下回分析....