Java HashMap对象值未被c读取:如果
我正在将一些对象实例映射到表单。 为此,我打算在JSP页面中使用c:foreach循环 Im使用springmvc,模型被正确地传递给JSP,除了属性,其中有一个HashMap,它将由c:foreach循环读取 看: Jsp(分析/分析配置): 这里我缺少什么?当您使用Java HashMap对象值未被c读取:如果,java,jsp,Java,Jsp,我正在将一些对象实例映射到表单。 为此,我打算在JSP页面中使用c:foreach循环 Im使用springmvc,模型被正确地传递给JSP,除了属性,其中有一个HashMap,它将由c:foreach循环读取 看: Jsp(分析/分析配置): 这里我缺少什么?当您使用对映射进行迭代时,迭代中的每个项目都是映射项的一个实例。也就是说,var=“type”中的每个项都将返回的实例 举个例子: <c:forEach var="type" items="${analysisTypes}">
对映射进行迭代时,迭代中的每个项目都是映射项的一个实例。也就是说,var=“type”
中的每个项都将返回的实例
举个例子:
<c:forEach var="type" items="${analysisTypes}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>
键为${type.Key}
值为${type.Value}
是的,我知道这一点,我正在代码中使用这一点。我写代码的方式错了吗?就像在${type.key.name}中一样,我应该从key生成一个变量并从中获取名称吗?我建议了解一下Map.Entry类是什么。所以我不能从hashMap创建任何东西,因为迭代后项目丢失了?Map.Entry是什么?它是一个键值对,将一个对象/类型映射到另一个对象/类型。
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";
}
public interface IAnalysisType {
public String getName();
public String getMessage();
public AnalysisResult execute(String samples);
}
<c:forEach var="type" items="${analysisTypes}">
Key is ${type.key}
Value is ${type.value}
</c:forEach>