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

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超详细讲解视图和视图解析器”的完整攻略,其中包含两个示例。 1. 前言 SpringMVC是一种常用的Java Web开发框架,它可以帮助开发者快速构建Web应用程序。本攻略将详细讲解SpringMVC的视图和视图解析器,帮助读者更好地掌握SpringMVC框架的使用方法。 2. 视图 在SpringMVC中,视图是用于渲染响应…

    Java 2023年5月16日
    00
  • 宾馆客房管理系统(Java+SQL Server)

    源代码下载链接: 一、宾馆客房管理系统开发初衷   随着互联网技术的迅速发展,计算机技术的普及以及信息化时代的推波助澜,宾馆客房需求的逐渐增大,这也是挑战了宾馆客房管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的宾馆客房管理系统,提高了宾馆的工作效率,为想要入住宾馆的人提供更好的服务。宾馆客房管理工作面对大量顾客的私人信息,引入信…

    Java 2023年4月18日
    00
  • JavaSE实战之酒店订房系统的实现

    JavaSE实战之酒店订房系统的实现攻略 介绍 本文将介绍如何使用JavaSE实现一个酒店订房系统。酒店订房系统是一个很典型的需求场景,通过本文的学习和实践,你将能够掌握JavaSE的相关知识和技能,并且学习如何使用Java编程实现一个实用的应用系统。 本文将前后分为四部分,首先介绍系统需求和功能规格,然后是系统设计和技术选择,接着是系统功能实现和测试,最后…

    Java 2023年5月24日
    00
  • Java的wait(), notify()和notifyAll()使用心得

    Java 中的 wait(), notify() 和 notifyAll() 方法 介绍 在 Java 中,线程是独立执行的,但是在某些情况下,我们希望线程之间能够进行同步和通信。这时,Java 提供了一些同步机制。其中,使用最广泛的机制就是对象的 wait()、notify() 和 notifyAll() 方法。 线程可以通过调用 wait() 方法来等待…

    Java 2023年5月26日
    00
  • java线程池参数位置导致的夺命故障宿主机打不开

    线程池是一种常见的并发处理机制,它可以有效地管理线程的生命周期,避免频繁创建和销毁线程而导致系统开销过大的问题。不过,在进行线程池的使用时,需要设置相应的参数,否则可能会导致不可预料的问题。 下面是针对“java线程池参数位置导致的夺命故障宿主机打不开”的攻略,具体内容如下: 1. 背景介绍 在使用线程池时,常见的参数包括线程池大小、任务队列大小、线程空闲时…

    Java 2023年5月27日
    00
  • 详解如何在SpringBoot项目中使用全局异常处理

    下面我将介绍如何在Spring Boot项目中使用全局异常处理。 什么是全局异常处理 Spring Boot提供了全局异常处理机制,可以自定义异常处理,将异常统一处理。当系统中出现异常时,通过该全局异常处理机制,可以统一的返回异常信息,避免因为异常没有处理而导致系统崩溃等问题。 如何自定义全局异常处理 先创建一个自定义异常类,让其继承RuntimeExcep…

    Java 2023年5月27日
    00
  • JVM垃圾收集器详解

    我们来详细讲解一下“JVM垃圾收集器详解”的完整攻略。 什么是JVM垃圾收集器 在JVM内存中,经过一段时间后,会存在很多不再使用的对象,这些对象就成为了垃圾。为了释放这些垃圾占用的内存空间,JVM提供了垃圾收集器来进行自动的垃圾回收。 常见的垃圾收集算法 1. 标记-清除算法 这是一种比较早的垃圾收集算法,它的缺点是会产生大量的内存碎片。其工作流程如下: …

    Java 2023年5月20日
    00
  • SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法

    下面是 SpringBoot 集成 FastDFS+Nginx 整合基于 Token 的防盗链的方法的完整攻略: 简介 FastDFS 是一个开源的分布式文件系统,由阿里巴巴的余庆编写,目前由开源社区进行开发,FastDFS 是基于 Linux 的文件系统,实现了一个简单的文件系统,它是以 Tracker Server 和 Storage Server 为两…

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