Struts2的环境搭建与接传值

来源:互联网 发布:淘宝怎么退货手机版 编辑:程序博客网 时间:2024/06/06 17:23

什么是Struts2

    Apache Struts是一个免费的开源MVC框架,用于创建优雅的现代Java Web应用程序。它支持约定而不是配置,可以使用插件体系结构进行扩展,并附带支持REST,AJAX和JSON的插件    

官网 : http://struts.apache.org/

这里写图片描述

英语不好的同学可以用谷歌浏览器,自带翻译

这里写图片描述

搭建Struts2开发环境

准备 :

  1. 下载Struts2的所有jar包
  2. 解压struts-2.3.24/apps里的struts2-blank.war文件(本示例用的是 struts-2.3.24 版本)
  3. 进入struts2-blank 是Struts2提供的一个空的示例项目

搭建环境 :

  1. 创建一个web项目TestStruts2
  2. 将struts2-blank/WEB-INF内的lib包复制到TestStruts2/WEB-INF内
  3. 打开struts2-blank/WEB-INF/web.xml复制struts2过滤器到TestStruts2/WEB-INF/web.xml里
  4. 打开struts2-blank/WEB-INF/classes文件夹,复制struts.xml到TestStruts2/src内。

至此Struts2的开发环境就搭建完成了,下面我们进行一下测试 :

Struts2测试

  • 在com.laolang.action.test包下创建一个TeatAction控制器
package com.laolang.action.test;/** * 标题: TestAction.java * 路径: com.laolang.action.test * 描述: 测试Struts2控制器 * 作者: 郎国峰 * 时间: 2017年11月17日 下午12:38:22 * 版本: @version V1.0 */public class TestAction {    /**     * @方法名: test        * @描述: 测试Struts方法     * @作者: 郎国峰     * @时间: 2017年11月17日 下午12:40:29     * @return     */    public String test(){        System.out.println("===TestAction控制器  method : test()===");        return "test";    }}
  • 创建一个index.jsp欢迎页,并添加一个超链接请求
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!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>    <h1>Struts2欢迎页</h1>    <a href="<%=request.getContextPath()%>/test!test.action">test请求,跳转到test页</a></body></html>
  • 创建一个测试页test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!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>    <h1>测试Stuts2跳转页面</h1></body></html>
  • 在Struts2中添加一个请求 , 在Struts2中一个action就是一个请求, 也就是在struts.xml里添加action节点 , 我们复制过来的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>    <!--         作者:郎国峰        时间:2017年11月17日11:46:04        描述:该属性设置Struts2是否支持动态方法调用,默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。     -->    <constant name="struts.enable.DynamicMethodInvocation" value="true" />    <!--         作者:郎国峰        时间:2017年11月17日11:50:12        描述:启动开发模式,启动开发模式之后,在你修改过struts.xml配置文件后,不需要重新启动项目,否则会很麻烦,默认是false     -->    <constant name="struts.devMode" value="true" />    <package name="default" namespace="/" extends="struts-default">        <!--             作者:郎国峰            时间:2017年11月17日12:03:53            描述:配置一个action,也就是一个请求         -->                <action name="test" class="com.laolang.action.test.TestAction">            <result name="test">/test.jsp</result>        </action>    </package></struts>

配置请求的几种方法:

  1. 直接发出请求,控制器默认运行的方法名为execute
  2. 动态方法调用(直接在请求里指定要运行的方法)
  3. 配置文件中,在action节点中添加method属性指定要运行的方法

> ——–页面请求 href=”<%=request.getContextPath()%>/test!test.action” , ! 前的test要和配置文件中action的name值相同, ! 后的test是指定请求控制器中的哪一个方法, 要和控制器里的方法名相同

本示例使用动态方法调用—————至此就可以启动项目发送请求了

这里写图片描述

这里写图片描述

Struts2接传值

  • Struts2控制器接值–基本数据
    Struts2控制器接值接基本数据的时候 , 页面正常传值 , 需要在控制器中天剑对应的属性和get,set方法,控制器里的属性名和页面的name属性的值需要相同,就能够接到值.
  • Struts2控制器接值–集合
    页面有很多name属性的值相同时,控制器就可以用集合型接值 , 比如说jsp页面有三个name属性相同,都是name='ids' , name控制器就可以写成 String[] ids; List ids; Set ids; ,写一个就可以,然后生成set get方法.
  • Struts2控制器接值–封装对象接值
    封装对象页面写法为 name=对象.属性 ,控制器接值声明一个对象(set和get方法)  要求:”对象.属性”的属性必须是控制器中声明对象的类中的属性
  • Struts2控制器向页面传值
    其实控制器向页面传值完全不用我们来操作,Struts2会将所有的值都传给页面,在页面我们可以用Struts2标签进行接值 , 比较喜欢<s:debug> 标签 , 能够查看值栈中的所有的值 , 另外我取值的时候比较喜欢用EL表达式取值,特别方便.

特别提醒 : 因为Struts2会将所有的值都传递到页面 , 如果需要和Spring进行整合的时候 , Struts2的控制器应该用原型模式!!!

  • 接传值的相关示例代码我就不单独粘贴了,有需要的可以下载示例源代码

源码下载

提示 : 测试时请输入正确的日期合适,本示例没有写js校验 格式 : 2017-09-09
链接: https://pan.baidu.com/s/1slbULxN 密码: 8zxz

原创粉丝点击