Struts2 环境搭建

来源:互联网 发布:帝国cms 搜索代码 编辑:程序博客网 时间:2024/06/05 10:50

Struts2 的环境搭建

一、环境搭建

1.环境搭建步骤整体是分三步:

    <1>导入框架组件及开发jar 包

    <2>在动态WEB 工程下配置Struts2 的拦截器

    <3>新建struts.xml 配置文件及创建相关Action 类

2.开发平台

    <1>此处使用的是Myeclipse2014,其他支持Java EE 等开发环境也可以。

    <2>配置Tomcat6.0,此处使用tomcat 版本较低,推荐使用更高版本或最新版本的。(tomcat7,tomcat8,tomcat9)

二、Struts2 项目

1.第一个项目HelloWorld

    说明:以下相关包、类、文件等命名自定义

2.新建动态WEB 工程命名为Struts2Project

    <1>导入Struts2 框架所需相关jar 包,点此下载


图2-2-1.Struts2-jar 包图

3.配置WEB 工程配置文件web.xml,注册映射Struts2 的过滤器

    代码如下:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><!-- 配置Struts2 的Filter --><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>

    说明:filter-mapping 子节点url-pattern 的参数为/*, 使用通配符表示当前WEB 工程下的所有文件被访问都要通过struts2 映射的过滤器即filter 子节点filter-class 所指向的过滤器类。

4.创建Action 类并配置struts.xml 

    <1>.创建Action 类:User.java 

    在src 下新建包cn.edu.hpu.action,并创建Action 类命名为User。

    在User.java 中创建私有属性及对应的setter() 与getter() 方法。

    创建一个自定义方法login(),用来模拟用户登陆功能。

    (说明:Struts2 下Action 类中有默认方法名为execute(),不自定义方法应该使用execute() 方法 )

    代码如下:

package cn.edu.hpu.action;public class User {private String username;private String password;public String getUsername() {return username;}public String getPassword() {return password;}public void setUsername(String username) {this.username = username;}public void setPassword(String password) {this.password = password;}/** * 登录方法 * 若页面请求参数为zhangsan 123456 则用户数据验证成功 * 进行相应的逻辑操作,方法返回值对应配置文件中节点result 的name 属性,进入到对应的响应页面 * <result name="success">success.jsp</result> * <result name="error">error.jsp</result> * @return */public String login(){if (username.equals("zhangsan") && password.equals("123456")) {return "success";}return "error";}}
    注意:Action 类中的方法以及方法返回值是与struts.xml 文件中的配置对应的。
    <2>配置struts.xml 

    (1)上面创建的类User.java 当前还是一个普通的model 类,通过在struts.xml 中配置此类就能让struts2 来管理了,被struts2 管理的model 类是Action 类。

    (2)创建Struts2 配置文件struts.xml 并进行配置

    配置如下:

<?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="default" extends="struts-default" ><!-- 注意:class参数 --><action name="user-login" class="cn.edu.hpu.action.User" method="login"><result name="success">success.jsp</result><result name="error">error.jsp</result></action></package></struts>

    (3)struts.xml 节点说明:

    struts.xml 文件中仅有一个struts 节点,该节点下可有多个package 节点,package 节点下可有多个action 节点

      1>package 需要继承struts-default,name 属性值自定义。

      2>action 

        -- name 

    name属性值对应来自界面的或控制层请求转发、重定向等请求方法的方法名。

例如:

    请求方法为user-login ,此处name 值也为user-login 则此action 将会受理该方法对应的请求。

        -- class 

    class属性配置普通的model 类,注意是全类名,配置后该类即为Struts2 的Action 类。

        -- method 

    method属性默认值为execute。(method="execute" )

    如果action 节点不配置method 就默认使用execute 方法。该方法存在于class 属性对应的Action 类中。

      <action name="user-login" class="cn.edu.hpu.action.User">

    此处自定义方法为login 则需配置属性method = "login" ,(此方法对应Action 类中的自定义方法。)

      <action name="user-login" class="cn.edu.hpu.action.User" method="login">

      3>result

    该节点下有name 属性,默认值为success。(name="success" )

    若不配置name 属性时,则默认存在name = "success";其中默认方法public String execute()  的返回值是success。

例如:

    此处Action 类中自定义方法public String login() 返回值为error 或success。

    (4)Struts2 的HelloWorld整个执行过程:

    首先页面传来请求,然后根据请求方法与action 节点下的name 比对找到对应的action;

    执行此action 配置的类中的特定方法;

    (类为action 下的class 指向,方法名为action 的method 属性值)。

    根据方法的返回值匹配action 子节点result 的name 属性值,执行相关逻辑操作

例如:

      <action name="user-login" class="cn.edu.hpu.action.User" method="login">

    此处即受理请求user-login ,执行User 中的login 方法。根据login 方法逻辑处理后的返回值与result 比对进行下一步逻辑处理。

三、测试运行HelloWorld 

1.为测试Struts2 环境是否配置完全。可测试刚才配置的方法user-login 。即模拟账户登录功能。

2.新建login.jsp 登录界面

    代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!-- 引入struts 标签库 --><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><center><h4>登录信息表单</h4><br/><s:form action="user-login" method="post"><s:textfield name="username" label="账户"/><s:password name="password" label="密码"/><s:submit/></s:form></center></body></html>
    页面只有一个表单,运行项目,进入该页面,写入数据后点击提交按钮,通过Struts 环境逻辑处理响应相应的结果。

3.创建jsp 文件success.jsp 和 error.jsp,就是显示登录成功或失败的页面。


图3-3-1.项目整体结构图

4.在tomcat 下运行该工程Struts2Project

    <1>过程描述:

    通过浏览器访问login.jsp,在此页面填写zhangsan、123456 后点击提交按钮,发送请求到user-login ,struts2 对WEB 应用下所有访问进行拦截过滤,通过请求方法user-login 比对,相应的action 受理该请求,并执行Action 类User.java 的login 方法,在此方法中比对页面传来的请求参数username、password,比对成功login() 方法返回值为success,action 节点的子节点result 的name 属性值匹配返回值,进入相应的逻辑处理;返回值为success 则进入success.jsp 页面提示登录成功,error 则进入error.jsp 提示登录失败!

    <2>运行效果如下:


图3-4-1.正确信息图


图3-4-2.登录成功图


图3-4-3.错误信息图


图3-4-4.登录失败图
2 0
原创粉丝点击