Struts2的环境搭建与接传值

常用框架 专栏收录该内容
3 篇文章 0 订阅

什么是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

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

TheBiggestMouse

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值