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日

相关文章

  • java创建excel示例(jxl使用方法)

    关于“java创建excel示例(jxl使用方法)”的攻略,可以分以下步骤进行讲解: 1. 准备工作 在使用jxl创建Excel文件之前,需要先下载并导入jxl的jar包,可以通过以下方式导入: 将下载的jxl.jar文件拷贝至项目的lib目录下,然后右键点击该文件,选择“Build Path” -> “Add to Build Path”即可将其添加…

    Java 2023年6月15日
    00
  • Spring Security Remember me使用及原理详解

    Spring Security Remember me是一种通过在用户登录后为用户生成Token,使用户在下一次访问时可以跳过登录,直接使用Token进行自动登录的机制。 实现Remember me功能可以使用Spring Security提供的RememberMeAuthenticationFilter过滤器,该过滤器会在用户登录成功后创建一个Token,…

    Java 2023年5月20日
    00
  • spring boot 默认异常处理的实现

    Spring Boot 默认的异常处理机制可以根据不同的异常类型,自动返回对应的 HTTP 状态码,同时输出异常信息,帮助我们快速定位错误。 默认情况下,无需显式配置,Spring Boot 就可以捕获控制器方法抛出的异常及一些框架内部异常。当异常被捕获后,Spring Boot 会根据异常类型来自动选择以下处理步骤: 如果是 HTTP 400 错误,返回 …

    Java 2023年5月27日
    00
  • java比较两个list是否相同equals的代码详解

    要比较两个List是否相同,可以使用Java内置的equals()方法,但是需要注意以下几点: equals()方法比较的是两个List的元素个数和元素值,因此需要保证元素位置、个数和值完全一致。 如果List中包含自定义对象,那么自定义对象需要自己实现equals()方法,才能保证正确比较。 比较两个List时,可以使用Collections工具类中的eq…

    Java 2023年5月26日
    00
  • 一文带你深入了解Java泛型

    一文带你深入了解Java泛型 什么是Java泛型? Java泛型是Java提供的一个强大的工具,它允许我们在编写代码的时候指定类型参数,从而可以在编译时检测类型安全性,避免了许多运行时错误。另外,通过使用泛型,我们还可以编写更加通用、灵活的代码。Java泛型最早出现在JDK1.5版本中,是Java语言中的一个重要特性。 泛型类和泛型接口 Java泛型既可以应…

    Java 2023年5月26日
    00
  • java中的IO流

    下面是 Java 中的 IO 流的完整攻略。 一、IO 概述 IO(Input/Output)指输入/输出,是程序与外界交互的重要途径之一。在 Java 中,IO 操作分为“字节流”和“字符流”两大类。其中,“字节流”以字节为单位进行输入/输出,而“字符流”以字符为单位进行输入/输出。 二、字节流 字节流中,InputStream 和 OutputStrea…

    Java 2023年5月20日
    00
  • Java中计算时间差的方法

    当我们使用Java进行开发时,有时需要计算两个时间之间的时间差。在Java中计算时间差可以使用以下常用方式。 1.使用Date类 import java.text.SimpleDateFormat; import java.util.Date; public class TimeDifference { public static void main(Str…

    Java 2023年5月20日
    00
  • Java异常处理中的各种细节汇总

    Java异常处理中的各种细节汇总 异常处理是Java中非常重要的一个主题。本文将详细讲解Java异常处理中的细节,并以示例进行说明。 什么是异常? 异常是程序在运行时出现的一种错误。Java中的异常可以分为编译时异常和运行时异常。编译时异常必须在代码中进行处理或声明抛出,否则编译无法通过;运行时异常则可以不进行处理或声明抛出。 异常处理的方法 Java中的异…

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