struts2处理formData
时间: 2023-07-05 11:35:43 浏览: 97
Struts 2 可以通过 `org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper` 类来处理 `FormData`。该类是 Struts 2 中用于处理多部分请求(如文件上传)的类,也可以用于处理 `FormData` 类型的请求。
以下是一个处理 `FormData` 的示例:
```java
public class MyAction extends ActionSupport {
private String username;
private String email;
private File avatar;
private String avatarContentType;
private String avatarFileName;
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
MultiPartRequestWrapper multiWrapper = (MultiPartRequestWrapper) request;
username = multiWrapper.getParameter("username");
email = multiWrapper.getParameter("email");
avatar = multiWrapper.getFile("avatar");
avatarContentType = multiWrapper.getContentType("avatar");
avatarFileName = multiWrapper.getFileNames("avatar")[0];
// 处理请求数据...
return SUCCESS;
}
// getters and setters...
}
```
在这个例子中,我们使用 `MultiPartRequestWrapper` 类的 `getParameter()`、`getFile()`、`getContentType()`、`getFileNames()` 方法来获取请求中的参数和文件。然后,我们可以将它们存储在类的成员变量中,并在 `execute()` 方法中对请求数据进行处理。
需要注意的是,在使用 `MultiPartRequestWrapper` 类时,需要在 `struts.xml` 文件中配置 `struts.multipart.parser` 属性为 `jakarta-stream` 或 `jakarta-fileupload`,以指定使用 Jakarta Stream 或 Jakarta FileUpload 这两个流行的文件上传库来处理多部分请求。例如:
```xml
<struts>
<constant name="struts.multipart.parser" value="jakarta-stream" />
<!-- 配置 action 映射和结果类型... -->
</struts>
```
以上是一个处理 `FormData` 的示例,通过 `MultiPartRequestWrapper` 类可以方便地获取请求中的参数和文件,并进行相应的处理。
阅读全文