JAVA Web学习(20)___第14章Struts2基础

第14章Struts2基础

14.1 Struts2概述

14.1.1 理解MVC原理

14.1.2 Struts2框架的产生

14.1.3 Struts2的结构体系

14.2 Struts2入门

14.2.1 Struts2的获取与放置

开发struts项目必须添加的类库文件

名称 说明
struts2-core-2.5.20.jar Struts2 的核心类库
xwork-core-2.1.6.jar Xworkd 的核心类库
ognl-3.1.21.jar Ognl表达式语言类库
commons-logging-1.2.jar Log4j日志支持类库
freemarker-2.3.28.jar freemarker模板语言支持类库
commons-io-2.6.jar 处理IO操作的工具类库
commons-fileupload-1.4.jar 文件上传支持类库

14.2.2 第一个Struts程序

  • 1.在web.xml中声明Struts2提供的过滤器


    8.1
    
        index.html
        index.htm
        index.jsp
        default.html
        default.htm
        default.jsp
    
    
    
        
        struts2
        
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
    
    
        
        struts2
        
        /*
    

  • 2.在源码文件夹中(Src)创建struts.xml的配置文件


    
    
        
        
            
            /first.jsp
        
    


  • 3.创建主程序index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




主页


    请求Struts2



  • 4.创建first.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




第一个Struts2程序


    第一个Struts2程序!
    

14.3 Action对象

14.3.1 认识Action对象

Actions是Struts2框架的核心,因为它们适用于任何MVC(Model View Controller)框架。 每个URL映射到特定的action,其提供处理来自用户的请求所需的处理逻辑。
Action对象的方法说明

public interface Action {
   public static final String SUCCESS = "success";//
   public static final String NONE = "none";
   public static final String ERROR = "error";
   public static final String INPUT = "input";
   public static final String LOGIN = "login";
   public String execute() throws Exception;
}

14.3.2 请求参数的注入原理

setter方法注入getter方法获取

public class UserAction extends ActionSupport{
    private String username;
    public void setUsername(String username){
        this.username=username;
    }
    public String getUsername(){
        return username;
    }
    public String execute(){
    return SUCCESS;
    }
    
}

14.3.3 Action的基本流程

14.3.4 什么的动态Action

配置方法为Action地址与请求字符串之间以"!"号隔开
示例代码

/userAction!add

14.3.5 动态Action的应用

  • 1.创建UserAction.java ,并且分别编写add()方法与update()方法,用于处理添加用户信息的请求及更新用户信息
public class UserAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    // 提示信息
    private String info;
    // 添加用户信息
    public String add() throws Exception{
        info = "添加用户信息";
        return "add";
    }
    // 更新用户信息
    public String update() throws Exception{
        info = "更新用户信息";
        return "update";
    }
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
}

  • 2.创建struts.xml(存放在源码文件夹即src文件夹)


    
    
        
        
            
            user_add.jsp
            
            user_update.jsp
        
    



  • 3.创建user_add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




添加用户信息


     
        
    


  • 4.创建user_update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




更新用户信息


     
        
    



  • 5.创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




首页


    添加用户
    
更新用户

14.4 Struts2的配置文件

14.4.1 Struts2的配置文件类型

Struts2的配置文件主要有4个

名称 说明
struts-default.xml 位于struts2-core-2.1.14.1.jar文件的org.apache.struts2包中
struts-plugin.xml 位于struts2提供的各个插件的包中
struts.xml web应用默认的struts2配置文件
struts.properties Struts2框架中属性配置文件
web.xml 在该文件中也可以设置Struts2框架的一些信息

14.4.2 Struts2的包配置

在struts.xml文件中使用包,不仅可以提高程序的可读性,还可以简化日后的维护工作,其使用方式如下

    
    
    
    
    

14.4.3 名称空间配置

将book的名称空间指定为“/bookmanager”

    
    
    
    
    

元素中指定名称空间属性,名称空间的值需要以"/"开头,否则找不到Action对象的访问地址。

14.4.4 Action相关配置

在struts.xml中,为action进行配置

    
            
            user_add.jsp
            
            user_update.jsp
        

元素的属性及说明

属性 说明
name 用于配置Action对象被请求的URL映射
class 指定Action对象的类名
method 设置请求Action对象时,调用Action对象的哪一个方法
converter 指定Action对象类型转换器的类

14.4.5 通配符实现简化配置

在struts.xml中,通配符主要有两个

  • 1.通配符"*",匹配0个或多个字符
  • 2.通配符"":是一个转义字符,如需要匹配"",则使用"/"进行匹配
    
    
    
            
            user_add.jsp
            
            user_update.jsp
        
        
    

元素的name属性值为"add*",它匹配的是以字符"add"开头的字符串,如"addUser"、"addBook"都可以匹配

14.4.6 返回结果配置


            
            user_add.jsp
            
            user_update.jsp
        

如果不设置元素的name属性,默认情况下,它的值为success。

14.5 Struts2的开发模式

14.5.1 实现Servlet API交互

  • 实例化ActionContext
    public static ActionContext getContext()
  • 获取Map类型request
    public Object get(Object key)
  • 获取Map类型的session
    public Map getSession()
  • 获取Map类型的application
    public Map getApplication()

14.5.2 域模型DomainModel

14.5.3 驱动模型ModelDriven

14.6 典型应用

14.6.1 Struts2处理表单数据

  • 1.创建GreetingAction.java
public class GreetingAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    // 用户名
    private String username;
    // 处理请求
    @Override
    public String execute() throws Exception{
        // 判断用户名是否有效
    if(username == null || "".equals(username)){
            // 返回到错误页面
            return ERROR;
        }else{
            // 返回到成功页面
            return SUCCESS;
        }
    }
    // username属性的getter方法
    public String getUsername() {
        return username;
    }
    // username属性的setter方法
    public void setUsername(String username) {
        this.username = username;
    }
}

  • 2.创建struts.xml(放在源码文件夹下,即src目录)


    
    
        
        
            
            success.jsp
            
            error.jsp
        
    

  • 3.创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




主页



  
请输入你的姓名:
  • 4.创建success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




欢迎



    
        
    
     ,您好!
    
欢迎使用来到本站。

在jsp页面中使用 Struts2提供的标签库,需要事先引入 Struts2的标签库,实例中通过"<%@ taglib prefix="s" uri="/struts-tags" %>"代码进行引入

  • 6.创建error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




错误


     错误:您没有输入姓名!


14.6.2 使用Map类型的request、session和application

你可能感兴趣的:(JAVA Web学习(20)___第14章Struts2基础)