A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

第一步,导入jar文件

sturts2-core-xxx.jar                                   //核心类库
xwork-core-xxx.jar                                //构建基础
ognl-xxx.jar                                                //表达式语言类库
freemarker-xxx.jar                                        //标签模板使用类库
javassist-xxx.GA.jar                                //对字节码进行处理
commons-fileupload-xxx.jar                //文件上传时需要使用
commons-io-xxx.jar                                //java IO扩展
commons-lang-xxx.jar                                //包含了一些数据

//自动导入上面8个jar文件
<dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.5.14.1</version>
</dependency>

第二步:创建处理请求的Action类,可以实现Action接口,实现execute()方法,所有用于处理请求的方法都必须返回一个字符串类型的逻辑结果,Action类的属性来接收用户的输入,需要set和get方法。

import com.opensymphony.xwork2.Action;

public class HelloWorldAction implements Action {
    private String name;
    private  String pwd;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String execute() {
        //获得ServletContext对象
        ServletContext servletContext= ServletActionContext.getServletContext();
        //获得HttpServletRequest对象
        HttpServletRequest request= ServletActionContext.getRequest();
        //获得HttpSession对象
        HttpSession session=request.getSession();
        if(this.getName()==null || this.getName().length()==0){

        }
        return LOGIN;
    }
}

Action接口常用字符串的逻辑含义:

常量        值        逻辑含义
SUCCESS        success        表示处理正常,并返回成功后的结果
NONE        none        表示处理正常,但不返回给用户信息
ERROR        error        表示处理结果失败
INPUT        input        表示需要更多用户输入才能顺利执行
LOGIN        login        表示需要用户正确登陆后才能顺利执行
第三步:配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee  http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <display-name>Archetype Created Web Application</display-name>
  <!--引入核心过滤器-->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>
</web-app>


第四步:创建struts.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <!--编码格式-->
    <constant name="struts.i18n.encoding" value="UTF-8"/>

    <!--启用动态方法调用,如:url是login!xxx.action,访问Login类的xxx方法。因为可能带来安全隐患,默认是false-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

    <!--可以拆分成多个struts配置文件,默认只加载struts.xml文件,所以用include元素把所有文件整合起来-->
    <include file="struts-user.xml"/>

    <!--创建一个包,继承自Struts2的struts-default包-->
    <package name="index1"  extends="struts-default" >
        <!--接收处理用户的/login1.action请求,并根据返回结果完成跳转。 method:类的方法名;-->
        <action name="login1" class="cn.kgc.action.LoginAction" method="success">
            <!--结果为success时,跳转至login.jsp页面-->
            <result name="success">login.jsp</result>
            <!--结果为error时,跳转至index.jsp页面-->
            <result name="error">index.jsp</result>
        </action>
    </package>

    <package name="null" extends="struts-default">
        <action name="login" class="cn.kgc.action.Login" method="Login">
            <!--redirect:重定向;redirectAction:重定向到action;dispatcher:转发(默认值)-->
            <result name="login" type="redirect">WEB-INF/jsp/login.jsp</result>
            <!--redirectAction:重定向到上面的login1请求-->
            <result name="input" type="redirectAction">login1</result>
        </action>
    </package>

    <!--使用通配符,*User:配置所有以User结尾的URL,method="{1}:值就是name属性值中第一个“*”的值。-->
    <!--如:请求为loginUser.action,将由HelloWorldAction类的login()方法执行,返回到/jsp/login.jsp页面-->
        <package name="" extends="struts-default">
        <action name="*User" class="cn.kgc.action.HelloWorldAction" method="{1}">
            <result name="success">WEB-INF/jsp/{1}.jsp</result>
        </action>
    </package>
</struts>

第五步:编译部署并启动服务器


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马