基本上,我需要在1个jsp页面上显示10个未排序的数组,然后单击按钮后,对它们进行排序并显示10个排序的数组,因此在1页上必须是20个数组(10个排序,10个未排序)。希望我能为您描述清楚。 我使用Spring MVC / JSP。 这是我的home.jsp页面
apiVersion: v1
kind: Pod
metadata:
name: app
labels:
app: app
spec:
containers:
- name: app
image: image
volumeMounts:
- mountPath: /mnt
name: test
resources:
{{ toYaml .Values.pod.resources | indent 6 }}
volumes:
- name: test
emptyDir: {}
这是我的控制器:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<P> current arrays: <br>
<c:forEach items="${list}" var="arr">
<c:forEach items="${arr}" var="elem">
${elem}
</c:forEach> <br>
</c:forEach>
</P>
<br>
sorted arrays:
<form:form action = "sort">
<input type="submit" value="Sort" />
<c:forEach items="${sortedList2}" var="arr">
<c:forEach items="${arr}" var="elem">
${elem}
</c:forEach> <br>
</c:forEach>
</form:form>
</body>
</html>
}
最后这是我的AlgorithmModel,用于执行排序并生成List:
@Controller
public class HomeController {
private AlgorithmModel algo = new AlgorithmModel();
private List<Integer[]> list = algo.getList();
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@ModelAttribute("list")
public List<Integer[]> getList() {
return list;
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(ModelMap model) {
return "home";
}
@RequestMapping(value = "/sort", method = RequestMethod.POST)
public String sort(@ModelAttribute("list") ArrayList<Integer[]> list, ModelMap model) {
List<Integer[]> list2 = new ArrayList<Integer[]>(list);
algo.sortList(list2);
model.put("sortedList2", list2);
return "home";
}
所以我认为它应该像这样工作: - 在控制器中我们生成包含10个随机数组的列表 - 使用@ModelAtribute并在页面上拉出此列表 单击按钮并在排序方法中对列表进行排序
但结果我得到: picture
这两个列表都被排序,但第一个列表是shoudnt。 我怎样才能做到这一点? 附:我是Spring MVC中的新手,而且已经浪费了4个小时,因此浪费你的时间。
答案 0 :(得分:0)
实际上这不是一个spring-mvc问题,而更像是一个Java问题。 你遇到的问题是,即使你在排序之前创建一个新的列表;这两个列表仍然指向同一个Integer数组。您应该从初始列表深度克隆整数数组,并在排序之前使用这个新数组实例创建第二个列表。