Struts2开发 基本配置与类型转换

yizhihongxing

Struts2开发的基本配置与类型转换是开发Struts2应用的基础,需要掌握以下几个方面:

  1. 配置Struts2的核心过滤器

在web.xml文件中配置Struts2的核心过滤器,它是Struts2应用的入口,负责拦截所有请求并执行相应的操作。以下是配置示例:

<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>
  1. 配置Struts2的常量

在struts.xml文件中配置Struts2的常量,包括文件上传大小限制、默认编码、JSP页面路径等。以下是常量配置示例:

<constant name="struts.multipart.maxSize" value="102400000"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<constant name="struts.convention.default.parent.package" value="struts-default"/>
<constant name="struts.convention.action.suffix" value="Action"/>
<constant name="struts.convention.result.path" value="/WEB-INF/pages/"/>
  1. 配置Struts2的类型转换器

Struts2使用类型转换器将文本数据转换为Java对象,常见的类型转换包括日期、数字、枚举类型等。以下是类型转换器配置示例:

<package name="default" extends="struts-default">
  <interceptors>
    <interceptor name="paramsPrepareParamsStack"
    class="org.apache.struts2.interceptor.params.ParamsPrepareParamsStack"/>
    <interceptor name="defaultStack" class="org.apache.struts2.interceptor.DefaultStack"/>
  </interceptors>
      <action name="addUser" class="com.example.struts2.action.AddUserAction">
        <interceptor-ref name="paramsPrepareParamsStack"/>
        <interceptor-ref name="defaultStack"/>
        <result name="success">/result.jsp</result>
        <result name="input">/adduser.jsp</result>
      </action>
    <type-conversion>
        <converter class="com.example.struts.converter.MyDateConverter"></converter>
        <converter class="com.example.struts.converter.MyEnumConverter"></converter>
    </type-conversion>
</package>

此外,在Java中也可自定义类型转换器,如下:

public class MyDateConverter extends StrutsTypeConverter {

    private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

    @Override
    public Object convertFromString(Map context, String[] values, Class clazz) {
        if (values == null || values.length == 0) {
            return null;
        }
        SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
        try {
            return dateFormat.parse(values[0]);
        } catch (ParseException e) {
            return null;
        }
    }

    @Override
    public String convertToString(Map context, Object o) {
        if (o == null) {
            return null;
        }
        SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
        return dateFormat.format((Date) o);
    }
}

以上就是Struts2开发基本配置与类型转换的完整攻略了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2开发 基本配置与类型转换 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 一文彻底吃透SpringMVC中的转发和重定向

    一文彻底吃透SpringMVC中的转发和重定向 前言 Spring MVC 框架作为 Java 世界中非常流行的 Web 框架,是面试、工作必备技能之一。在 Spring MVC 中,转发和重定向是常用的两种请求转发方式。本文将通过代码示例,详细讲解 Spring MVC 中的转发和重定向的使用方式。 转发 转发是 Web 开发中非常常用的一种请求方式,它可…

    Java 2023年5月31日
    00
  • Java利用future及时获取多线程运行结果

    下面是Java利用Future及时获取多线程运行结果的完整攻略: 1. Future概述 Future是一种多线程编程模型,在Java5中引入,主要用于解决由于异步执行任务而导致的程序阻塞问题。通过Future,可以异步执行任务的同时,获取该任务执行的结果。 在Java中,Future是通过Future接口实现的。Future接口定义了获取异步计算结果的方法…

    Java 2023年5月18日
    00
  • 常见的垃圾收集器算法有哪些?

    常见的垃圾收集器算法有哪些? 在大部分编程语言中,动态内存分配是必不可少的。为了防止内存泄漏,需要进行垃圾回收(Garbage Collection,简称GC),即在进行垃圾回收时收集并释放不再需要使用的存储器资源,在内存使用过多而导致程序出现异常时,垃圾回收是很重要的。而垃圾回收主要有2类算法 — 标记-清扫(Mark and Sweep)和复制式(Cop…

    Java 2023年5月10日
    00
  • 使用java实现猜拳小游戏

    使用Java实现猜拳小游戏 概述 在本篇攻略中,我们将使用Java编写一个猜拳小游戏,让玩家与计算机进行猜拳对抗。猜拳规则如下: 剪刀(scissors)败给石头(rock),胜过布(paper) 石头(rock)胜过剪刀(scissors),败给布(paper) 布(paper)胜过石头(rock),败给剪刀(scissors) 游戏结束后,将统计双方获胜…

    Java 2023年5月19日
    00
  • Java MyBatis可视化代码生成工具使用教程

    下面是详细的Java MyBatis可视化代码生成工具使用教程攻略: 1. 下载安装Java MyBatis可视化代码生成工具 Java MyBatis可视化代码生成工具是基于Java语言实现的代码生成工具,可以生成具有MyBatis框架的Java代码。你可以从官网下载该工具并进行安装。 2. 连接数据库 Java MyBatis可视化代码生成工具需要连接数…

    Java 2023年5月20日
    00
  • Spring钩子接口汇总分析使用示例

    Spring钩子接口汇总分析使用示例 什么是Spring钩子接口? Spring钩子接口,也称为Spring钩子函数,是用于Spring容器生命周期中的扩展点。这些接口允许开发人员在特定生命周期事件上执行代码。Spring钩子接口提供了许多方法来覆盖各种通知事件,例如Bean初始化、Bean销毁等。 Spring钩子接口汇总 Spring Framework…

    Java 2023年5月19日
    00
  • Java语言面向对象编程思想之类与对象实例详解

    Java面向对象编程思想之类与对象实例详解 在Java中,所有的事物都是对象,对象都有其自身的特征和行为。因此,Java是一种面向对象的语言。在Java中,类和实例是很重要的概念,我们需要对其进行深入的学习和理解。 类和对象 类是一种模板或蓝图,可以用来创建对象。具有相同属性和行为的对象,可以归纳为同一个类。对象则是类的一个实例,可以根据类来创建多个对象。 …

    Java 2023年5月26日
    00
  • Java 8中字符串拼接新姿势StringJoiner详解

    Java 8中字符串拼接新姿势StringJoiner详解 在Java 8中,使用StringJoiner类可以更方便地进行字符串拼接。这个类可以让我们无需显式地使用字符串缓冲区或分隔符,并且支持指定开头和结尾的字符串,还可以在一些场景下避免空值引起的问题。 StringJoiner的用法 构造函数 首先,我们需要知道StringJoiner类的构造函数有如…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部