КонтроллерМогу ли я использовать операторы switch Thymeleaf с несколькими значениями?
@ControllerAdvice
public class UserRoleAdvice {
private static final Logger log = LoggerFactory.getLogger(UserRoleAdvice.class);
@Autowired
UsersRepository usersRepository;
@ModelAttribute("currentRole")
public String currentRole(Principal principal, Model model) {
Users user = usersRepository.findOneByInitialName(principal.getName());
if (user != null) {
log.info(user.getRole().toString());
model.addAttribute("currentRole", user.getRole().toString());
return user.getRole().toString();
} else {
return "ANONYMOUS";
}
}
}
Я использую заявление переключателя Thymeleaf контролировать то, что на моей странице появляется на основе значения в базе данных.
<th:block th:unless="${currentROLE} eq 'EMPLOYEE'">
<a href="/login" th:href="@{/login}" class="btn-login">Log In</a>
</th:block>
Я хочу, чтобы скрыть страницу входа в систему, если ${currentROLE}
показывает строку EMPLOYEE или MANAGER, но затем показать его, если нет значения для ${currentROLE}
.
Есть ли способ сделать что-то вроде этого (псевдокод)?
<th:block th:unless="${currentROLE} eq 'EMPLOYEE' & || eq 'MANAGER'">
<a href="/login" th:href="@{/login}" class="btn-login">Log In</a>
</th:block>
Или даже
<th:block th:unless="${currentROLE} exists>
<a href="/login" th:href="@{/login}" class="btn-login">Log In</a>
</th:block>
Странно. Второй дает мне сумасшедшую ошибку: «HTTP Status 500 - обработка запроса не удалась; Вложенное исключение - org.thymeleaf.exceptions.TemplateInputException: ошибка во время разбора шаблона (шаблон: «ресурс пути к шаблону [templates/home.html]») '' – santafebound
обновленный ответ @santafebound. Должен работать сейчас. – Patrick
Спасибо. Я использовал средний, но все они работали. – santafebound