以下に定義された春の注釈付きクラスがあります
@component
public class FormFilter extends DroplistFilterEditor{
@Autowire
private PersonService personService;
@Override
protected List<Option> getOptions()
{
List<Option> options = new ArrayList<Option>();
try {
String fieldName = getColumn().getProperty();
List<StudyListView> studyList = null;
studyList=personService.findList();
for(StudyListView study:studyList){
options.add(new Option(study.getId(),study.getDesc()));
}
} catch (Exception ex) {
ex.printStackTrace();
}
return options;
}
}
このクラスを jsp から呼び出して、ページの読み込み時にドロップダウン リストを表示しようとしています。テーブルのレンダリングには jMesa を使用しています。
アプリケーションのデプロイ中に上記のクラスがロードされますが、jsp から呼び出されている間は personService オブジェクトは null です。自動配線は行われていません。
Spring MVC と jMesa は初めてです。どんな助けでも感謝します。前もって感謝します。
AppConfig ファイル
@Configuration
@Import({
AppTilesConfig.class,
AppWebConfig.class,
AppJpaConfig.class,
})
@ComponentScan(basePackages = {
"com.service",
"com.controller",
"com.web.ui",
})
public class AppConfig {
// This class is a root to import all dependent configurations.
}
そして、Spring mvc (AppWebConfig) の場合、私は以下のクラスを持っています
@Configuration
@EnableWebMvc
public class AppWebConfig {
@Bean
public ReloadableResourceBundleMessageSource messageSource()
{
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
String[] resources = {"classpath:messages"};
messageSource.setBasenames(resources);
return messageSource;
}
}
ページの読み込み時に FormFilter が呼び出される jsp コードを見つけます
<jmesa:springTableFacade id="imageTableId" items="${imageList}"
stateAttr="restore" var="item" exportTypes="" editable="false" rowFilter=""
toolbar="com.bar.FullPaginationToolBar">
<jmesa:htmlRow uniqueProperty="rowId" rowRenderer="com.bar.CustomHtmlRowRenderer"><jmesa:htmlTable><jmesa:htmlColumn property="study" style="white-space: nowrap" title="Study" editable="false" filterable="true" filterEditor="com.web.ui.FormFilter" sortable="true" /></jmesa:htmlRow></jmesa:springTableFacade>