详解Java的Struts框架中上传文件和客户端验证的实现
上传文件的实现
在 Struts 框架中,文件上传可以通过使用第三方库来实现,如:commons-fileupload 和 commons-io。
下面是文件上传的实现步骤:
- 导入文件上传相关的 jar 包:
commons-fileupload-x.x.jar
commons-io-x.x.jar
- 在 Struts.xml 配置文件中配置上传路径和文件大小:
xml
<constant name="struts.multipart.saveDir" value="/tmp"/>
<constant name="struts.multipart.maxSize" value="10000000000"/>
- 在 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; // 返回上传成功页面
}
- 在 JSP 页面中添加文件上传表单:
```html
```
客户端验证的实现
在 Struts 框架中,客户端验证可以通过使用第三方库来实现,如:jquery-validation。
下面是客户端验证的实现步骤:
- 导入 jquery-validation 和 jquery 库:
```html
```
- 在 JSP 页面中,添加需要验证的表单:
```html
```
- 在 JSP 页面中,添加客户端验证的 JS 代码:
```html
```
至此,上传文件和客户端验证的实现已经完成。
示例1
实现功能
该示例演示如何上传图片并在客户端验证表单。
实现步骤
- 创建
upload.jsp
页面,添加上传表单和客户端验证代码:
```html
```
- 创建
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; // 返回上传成功页面
}
- 在 Struts.xml 配置文件中添加上传文件的 Action 映射:
xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/success.jsp</result>
</action>
- 运行项目,访问上传页面,并进行表单验证和文件上传。
示例2
实现功能
该示例演示如何使用 Struts 框架实现文件上传和客户端验证功能,并在成功上传文件后显示文件列表。
实现步骤
- 创建
upload.jsp
页面,添加上传表单和客户端验证代码:
```html
```
- 创建
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; // 返回上传成功页面
}
- 在 Struts.xml 配置文件中添加上传文件的 Action 映射:
xml
<action name="file/upload" class="com.example.FileAction" method="upload">
<result name="success">/list.jsp</result>
</action>
- 创建
list.jsp
页面,显示上传的文件列表:
```html
文件列表
-
<% File[] files = new File("/tmp").listFiles(); %>
- <%= file.getName() %>
- 暂无文件
<% if (files != null && files.length > 0) { %>
<% for (File file : files) { %>
<% } %>
<% } else { %>
<% } %>
```
- 运行项目,上传文件并成功显示文件列表。
至此,文件上传和客户端验证的实现已经完成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java的Struts框架中上传文件和客户端验证的实现 - Python技术站