远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)
  • JavaSE

  • 开源框架

  • Linux

  • Struts2

    • Struts2-3概述与MVC模式深度剖析
    • Struts2-3环境准备以及构建第一个Struts2-3的hello-word项目
    • 使用MyEclipse2022-1搭建Maven版本的Struts2-3项目
    • Struts2的类型转换
    • Struts2-3的独有特性与StrutsPrepareAndExecute过滤器源码分析
    • Struts2类型转换之单个对象深入研究
    • Struts2类型转换之批量类型转换
      • 输入页面 input2.jsp
      • 流程跳转 struts.xml
      • 业务处理 Action 类 UserAction2
      • 类型转换器 UserAction2-conversion.properties
      • 输出结果 output2.jsp
      • 效果
    • Struts2类型转换之全局类型转换
    • Struts2自定义方法最佳实践
    • Struts2输入校验剖析之编码方式校验
    • Struts2的Action中自定义方法的输入校验
  • Hibernate

  • Webservice

  • 分布式

  • 分布式框架

  • 后端开发
  • Struts2
terwer
2022-11-01
目录

Struts2类型转换之批量类型转换

# 输入页面 input2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Struts2.3 converter</title>
</head>
<body>

	

	<form action="userAction2.action">

		user info 1: <input type="text" name="user"/><br/>
		user info 2: <input type="text" name="user"/><br/>
		user info 3: <input type="text" name="user"/><br/>
		user info 4: <input type="text" name="user"/><br/>
	
		<input type="submit" value="submit"/>

	</form>

</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 流程跳转 struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

	<package name="struts2" extends="struts-default">
		<action name="userAction2" class="space.terwer.struts23.UserAction2">
			<result name="success">/output2.jsp</result>
		</action>
	</package>

</struts>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 业务处理 Action 类 UserAction2

package space.terwer.struts23;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

import space.terwer.bean.User;

public class UserAction2 extends ActionSupport {

	private List<User> user;

	public List<User> getUser() {
		return user;
	}

	public void setUser(List<User> user) {
		this.user = user;
	}

	@Override
	public String execute() throws Exception {
		for (User u : this.getUser()) {
			System.out.println(u.getUsername() + "," + u.getPassword());
		}

		return SUCCESS;
	}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 类型转换器 UserAction2-conversion.properties

user=space.terwer.converter.UserConverter3
1
package space.terwer.converter;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import org.apache.struts2.util.StrutsTypeConverter;

import space.terwer.bean.User;

public class UserConverter3 extends StrutsTypeConverter {

	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		List<User> list = new ArrayList<>();

		for (String value : values) {
			StringTokenizer st = new StringTokenizer(value, ";");

			User user = new User();

			String username = st.nextToken();
			String pasword = st.nextToken();

			user.setUsername(username);
			user.setPassword(pasword);

			list.add(user);
		}

		return list;
	}

	@Override
	public String convertToString(Map context, Object o) {
		List<User> list = (List) o;

		StringBuilder sb = new StringBuilder();
		sb.append("[");

		for (int i = 0; i < list.size(); i++) {
			User user = list.get(i);
			sb.append("{username=" + user.getUsername());
			sb.append(",password=" + user.getPassword());
			sb.append("}");

			if (i < list.size() - 1) {
				sb.append(",");
			}
		}
		sb.append("]");

		return sb.toString();
	}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

# 输出结果 output2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>  
  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Struts2.3 converter result</title>
</head>
<body>
	<s:property value="user"/>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 效果

​

​

大功告成。与单个不一样的地方只在于把对象换成了 List​ ,其他的类似。

‍

编辑 (opens new window)
#输入#流程#跳转#业务#处理#类型转换#批量#multi
上次更新: 2023/02/22, 13:47:25
Struts2类型转换之单个对象深入研究
Struts2类型转换之全局类型转换

← Struts2类型转换之单个对象深入研究 Struts2类型转换之全局类型转换→

最近更新
01
解决css部分border被圆角切掉之后圆角的边框消失问题
03-18
02
使用TypeScript开发一个自定义的Node-js前端开发脚手架
03-08
03
Github-Actions使用release-please实现自动发版
03-06
更多文章>
Theme by Vdoing | Copyright © 2011-2023 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式