我試圖運行下面的代碼,但它與以下錯誤失敗。我無法找出出了什麼問題。請幫忙。 錯誤:java.lang.ArrayIndexOutOfBoundsException:1的行號37獲取錯誤爲java.lang.ArrayIndexOutOfBoundsException:1
代碼:
package com.ugam.filter.repository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import com.ugam.domain.filter.FilterTemplate;
@Configuration
@PropertySource("classpath:properties/filterTemplate.properties")
public class FilterTemplateRepository {
@Autowired
private Environment env;
@Bean
public Map<String,List<FilterTemplate>> getBean()
{
Map<String,List<FilterTemplate>> filterTemplateMap=new HashMap<String,List<FilterTemplate>>();
String moduleName=env.getProperty("module");
for(String eachmoduleName : moduleName.split(",")){
String templateName=env.getProperty(eachmoduleName + ".templateNames");
List<FilterTemplate> filterTemplatelist=new ArrayList<FilterTemplate>();
for (String eachtemplateNames : templateName.split(",")) {
String templateNameFields[] = env.getProperty(eachmoduleName + "." + eachtemplateNames).split(",");
FilterTemplate filterTemplate=new FilterTemplate();
filterTemplate.setTemplateHtml(templateNameFields[0]);
filterTemplate.setClassSelect(templateNameFields[1]);
filterTemplatelist.add(filterTemplate);
}
filterTemplateMap.put(eachmoduleName, filterTemplatelist);
}
return filterTemplateMap;
}
public List<FilterTemplate> getModuleData(String moduleName)
{
return getBean().get(moduleName);
}
}
屬性文件: - 模塊=儀表盤
dashboard.templateNames=templateHtml1,templateHtml2,templateHtml3,templateHtml4
dashboard.templateHtml1=dashBoardLeftInsight.html,leftpanel
dashboard.templateHtml2=dcdcsFilterOptions.html.html,
dashboard.templateHtml3=advanceFilterOptions.html,advancedOptions
dashboard.templateHtml4=reportFilterOptions.html,reportdashboard
向我們顯示屬性文件中的屬性。 –
你確定每次調用'env.getProperty(eachmoduleName +「。」+ eachtemplateNames).split(「,」);''時至少有一個','?在假定至少有2個元素之前檢查你的數組長度。 – rgettman
是的,templateNameFields [1]意味着該數組至少有2個元素(即,那裏有一個逗號), –