详解Java的Struts框架中上传文件和客户端验证的实现

详解Java的Struts框架中上传文件和客户端验证的实现

上传文件的实现

在 Struts 框架中,文件上传可以通过使用第三方库来实现,如:commons-fileupload 和 commons-io。

下面是文件上传的实现步骤:

  1. 导入文件上传相关的 jar 包:

commons-fileupload-x.x.jar
commons-io-x.x.jar

  1. 在 Struts.xml 配置文件中配置上传路径和文件大小:

xml
<constant name="struts.multipart.saveDir" value="/tmp"/>
<constant name="struts.multipart.maxSize" value="10000000000"/>

  1. 在 Action 类中编写文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 JSP 页面中添加文件上传表单:

```html



```

客户端验证的实现

在 Struts 框架中,客户端验证可以通过使用第三方库来实现,如:jquery-validation。

下面是客户端验证的实现步骤:

  1. 导入 jquery-validation 和 jquery 库:

```html

```

  1. 在 JSP 页面中,添加需要验证的表单:

```html





```

  1. 在 JSP 页面中,添加客户端验证的 JS 代码:

```html

```

至此,上传文件和客户端验证的实现已经完成。

示例1

实现功能

该示例演示如何上传图片并在客户端验证表单。

实现步骤

  1. 创建 upload.jsp 页面,添加上传表单和客户端验证代码:

```html






```

  1. 创建 FileAction.java 类,添加文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 Struts.xml 配置文件中添加上传文件的 Action 映射:

xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/success.jsp</result>
</action>

  1. 运行项目,访问上传页面,并进行表单验证和文件上传。

示例2

实现功能

该示例演示如何使用 Struts 框架实现文件上传和客户端验证功能,并在成功上传文件后显示文件列表。

实现步骤

  1. 创建 upload.jsp 页面,添加上传表单和客户端验证代码:

```html






```

  1. 创建 FileAction.java 类,添加文件上传的方法:

java
public String upload() {
HttpServletRequest request = ServletActionContext.getRequest();
File saveDir = new File("/tmp"); // 设置上传文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000000L); // 设置上传文件最大大小为 10G
try {
List<FileItem> items = upload.parseRequest(request); // 获取所有的上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件
String fileName = item.getName(); // 获取上传文件的文件名
if (StringUtils.isNotEmpty(fileName)) { // 如果文件名不为空
File uploadedFile = new File(saveDir, fileName);
item.write(uploadedFile); // 将上传的文件保存到指定路径中
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS; // 返回上传成功页面
}

  1. 在 Struts.xml 配置文件中添加上传文件的 Action 映射:

xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/list.jsp</result>
</action>

  1. 创建 list.jsp 页面,显示上传的文件列表:

```html

文件列表

    <% File[] files = new File("/tmp").listFiles(); %>
    <% if (files != null && files.length > 0) { %>
    <% for (File file : files) { %>

  • <%= file.getName() %>
  • <% } %>
    <% } else { %>

  • 暂无文件
  • <% } %>

```

  1. 运行项目,上传文件并成功显示文件列表。

至此,文件上传和客户端验证的实现已经完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java的Struts框架中上传文件和客户端验证的实现 - Python技术站

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

相关文章

  • SpringBoot2.x配置HTTPS访问的过程

    下面是“SpringBoot2.x配置HTTPS访问的过程”的完整攻略。 1. 生成证书 首先需要生成一对密钥(证书和私钥),可以使用 keytool 工具来生成。在终端中执行以下命令: keytool -genkeypair -alias mycertalias -keyalg RSA -keysize 2048 -storetype PKCS12 -ke…

    Java 2023年5月19日
    00
  • struts2实现文件下载功能

    下面我为你详细讲解“struts2实现文件下载功能”的完整攻略。 1. 确定文件路径和文件名 在进行文件下载功能的实现之前,我们需要先确定文件的路径和文件名。一般而言,可以将文件路径和文件名存储在数据库或配置文件中。在本次实例中,我们将文件保存在了项目根目录下的uploads目录中,因此文件路径和文件名可以如下方式进行定义: String filePath …

    Java 2023年5月20日
    00
  • 详解spring mvc中url-pattern的写法

    在 Spring MVC 中,url-pattern 是用于匹配请求路径的配置项。它可以通过在 web.xml 文件中配置或者在 Servlet 注解中配置来指定。本文将详细讲解 Spring MVC 中 url-pattern 的写法,包括通配符、正则表达式和 Ant 风格路径。 通配符 在 Spring MVC 中,url-pattern 支持使用 * …

    Java 2023年5月18日
    00
  • SpringMVC适配器模式代码示例

    简介 在SpringMVC中,适配器模式用于将请求转换为处理程序方法。本文将介绍SpringMVC适配器模式的代码示例,并提供两个示例说明。 SpringMVC适配器模式 SpringMVC适配器模式是一种设计模式,用于将请求转换为处理程序方法。在SpringMVC中,适配器模式由HandlerAdapter接口和其实现类来实现。以下是一个使用适配器模式的示…

    Java 2023年5月17日
    00
  • 深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

    深入浅析Java Web Log4j配置 什么是Log4j? Log4j 是一个基于Java的开源日志记录工具。它被设计为灵活且可扩展的,但也必须是高效的。为了实现这个目标,Log4j 架构被划分成三层 — API 层、内核层和附加组件。 Log4j的配置 在Java web项目中,我们可以通过配置文件来指定Log4j的应用。Log4j的配置文件是一个文本文…

    Java 2023年5月20日
    00
  • SpringBoot后端接口的实现(看这一篇就够了)

    “SpringBoot后端接口的实现(看这一篇就够了)”是一篇非常实用的文章,主要讲解了如何使用SpringBoot快速实现后端接口的开发。我将根据文章的内容为您提供一份完整攻略,帮助您理解和应用这篇文章。 1. 前置知识 在进行这个教程之前,您需要具备以下知识:- Java语言基础- SpringBoot框架基础- RESTful API的基本概念- Sp…

    Java 2023年5月15日
    00
  • SpringMVC中请求参数的获取方式

    SpringMVC中请求参数的获取方式 在SpringMVC中,可以通过多种方式获取请求参数: 通过@RequestParam注解获取请求参数 @RequestParam注解常用于简单类型参数的绑定,例如String、int等。使用该注解时可以指定参数名称,如果请求中传递的参数名称与指定的参数名称不一致,则无法获取到参数值。 @GetMapping(&quo…

    Java 2023年6月15日
    00
  • spring结合hibernate示例详解

    Spring与Hibernate整合示例详解 简介 在实际开发中,使用Spring和Hibernate框架的组合是比较常见的,这样可以提高开发效率,降低代码耦合度,同时也能够保证数据访问效率。 本文将详细讲解Spring和Hibernate框架的整合过程和使用方法,并且提供两个实例来演示该过程,其中一个是基于XML配置方式,另一个是基于注解配置方式。在学习本…

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