直接从thymleaf模板访问单例bean ?



我正在学习Spring,但是它令人困惑。

我有一个单例bean:

@Component
public class PuzzleUtil {
@Bean
@Scope("singleton")
public PuzzleUtil puzzleUtil() {
return new PuzzleUtil();
}
public ArrayList<String> getCategories() {
// ...
}
}

在我的web应用程序类中,当我加载索引页时,我正在为类别设置一个属性:

@Controller
@SpringBootApplication
public class MathPuzzlesWebApplication extends SpringBootServletInitializer {
@Autowired
private PuzzleUtil puzzleUtil;

@GetMapping("/index.html")
public String index(Model model) {
model.addAttribute("categories", puzzleUtil.getCategories());
return "index";
}
// ...
}

现在,我可以访问index.html模板中的类别数组了:

<table>
<th:block th:each="category: ${categories}">
<tr>
<td th:text="${category}"></td>
</tr>
</th:block>
</table>

一切按计划进行。

但是,似乎在我的控制器类中添加属性到模型是一个额外的步骤。该bean是一个单例,所以我认为我应该能够直接从我的模板访问它。我试过了:

<th:block th:each="category: ${puzzleUtil.categories}">

但是,我得到一个错误:

EL1007E: Property or field 'categories' cannot be found on null

我错过了什么,或者是不可能做我想做的事?

尝试使用@符号在百里香中添加bean

<th:block th:each="category: ${@puzzleUtil.getCategories()}">

相关内容

  • 没有找到相关文章

最新更新