现在的位置: 首页 > 综合 > 正文

Struts2入门与配置

2013年02月26日 ⁄ 综合 ⁄ 共 2958字 ⁄ 字号 评论关闭
STRUTS2入门与配置

出自:http://blog.csdn.net/pengpeng2395/archive/2008/08/06/2777988.aspx

Struts2从本质上看来源于Webwork,它同时具有Struts和Webwork的优点。WebWork是一个强大的基于Web的MVC框架, 它构建在一个命令模式框架XWork之上。下面就让我们来了解一下 Struts2吧。

1.Struts2配置文件
      
Struts2相关的配置文件有web.xml,struts.xml,struts.properties,struts-
default.xml,velocity.properties,struts-default.vm。其中web.xml,struts.xml是必
须的,其它的配置文件可选择。它们在web应用中的功能如下:

web.xml:包含所有必须的框架组件的web部署描述符。
Struts.xml:配置包含result/view类型、action映射、拦截器等的Struts2的主要配置文件。
Struts.properties:配置struts2的框架属性。
Struts-default.xml:在文件在struts-action-x.x.jar中,该文件是应该被包含在struts.xml中的缺省配置。
Welocity.properties:重写了velocity的配置文件。
Struts-default.vm:相对于velocity的缺省配置。

 

2.下面我们用一个登录实例来了解一个基本Struts2应用

A.建立基本JSP页面

  <body>
  <form action="login.action" method="post" >
  用户名:<input type="text" name="username"><br>
  密&nbsp;&nbsp;&nbsp; 码:<input type="password" name="password"><br>
  <input type="submit" value="提交">
  </form>
  </body>

 

B.建立Action类

public class LoginAction {
 //这个类会在struts2框架中自动调用setter getter方法
 private String username;

 private String password;

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String execute()throws Exception {
  
  return "success";
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

}

 

注意:其中setter getter方法会被Struts2容器直接调用,他们的定义应该和客户端请求表单中input的name相对应。

 

C.配置文件

(1)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  <!-- filter过滤客户端发来的请求 (struts的控制器)-->
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
 
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <!-- 表示客户端所有请求都要经过这个filter处理-->
  <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

以上是最基本的配置形式,具体含义就不多介绍了

 

(2)struts.xml

这是struts2的核心配置类,他的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标签内,具体配置如下:

<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>

</action>
</package>
</struts>

 

这里action name="login"要与login.jsp中的表单的 action="login.action"对应 ,class配置其对应的Action处理类,result定义了在Action的execute()方法中各种情况下跳转的页面。

 

D.登录结果页result.jsp

我们可以引入标签库,方便取得Action类属性

<%@ taglib prefix="s" uri="/struts-tags" %>

 

 用户名:<s:textfield  value="%{username}"/><br>
  密码: <s:property value="password"/>

 

当然也可以采用传统JSP方式:

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

 

总结一下Struts2的基本调用流程:

No1.客户端请求定义对应的Action

No2.Struts2容器会自动通过调用对应Action的get,set方法,把请求的数据传入Action中

No3.执行Action中的exxcute()方法,来实现页面的跳转活着其他处理。

抱歉!评论已关闭.