我将一些对象实例映射到Form。 为此,我打算在JSP页面中使用c:foreach循环。
我使用spring MVC并且模型正确地传递给JSP,除了有一个HashMap的属性,它将被c:foreach循环读取。
查找
Jsp(analysis / analysisConfig):
private static Map<IAnalysisType, Boolean> analysisTypes = new HashMap<IAnalysisType, Boolean>();
//Configure here all analysis Types to be shown
static{
analysisTypes.put(new AnalysisRMS(), false);
}
@RequestMapping(value="configuration", method= RequestMethod.GET)
public String config(@ModelAttribute("analysisForm") AnalysisForm form, @ModelAttribute("fileName") String fileName, Model model){
if(fileName!= null && fileName!=""){
form.setAnalysisTypes(AnalysisController.analysisTypes);
form.setFileName(fileName);
model.addAttribute("analysisForm", form);
return "analysis/analysisConfig";
} else {
return "index";
}
Analysis Controller类的代码:
public interface IAnalysisType {
public String getName();
public String getMessage();
public AnalysisResult execute(String samples);
}
用于多态的接口:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'reverse'
})
export class ReversePipe {
transform(arr) {
var copy = arr.slice();
return copy.reverse();
}
}
我在这里缺少什么?
答案 0 :(得分:-1)
当您使用<c:forEach>
迭代Map时,迭代中的每个项目都是 Map.Entry 的实例。这就是var="type"
中的每个项目都会返回Map.Entry的实例。
所以给出你的例子:
<c:forEach var="type" items="${analysisTypes}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>