Слушай, когда ты хочешь использовать тег <%- -%>
(это предотвращает вывод if
), ты должен передать опцию -
- trim_mode
в ERB.new
, чтобы использовать его.
См. Следующий пример:
Измените свой файл test.erb
на следующий код:
Hello
<% if (@x) -%>
XXX
<% end -%>
Goodbye
Когда вы создаете экземпляр ERB
, передайте параметр следующим образом:
renderer = ERB.new(File.read('test.erb'), nil, '-')
Теперь теги <%- -%>
будут работать нормально, надеюсь, это поможет!
У Вас есть оператор
<global-method-security secured-annotations="enabled" jsr250-annotations="enabled" />
в том же конфигурационном файле как тот Вы определили боб MyServiceManager? У меня была та же проблема, пока я не включил отладку для org.springframework и заметил той пружиной, что безопасность была только применена на тот же файл как те, где безопасность глобального метода была определена в.
У меня была эта та же проблема. Используя информацию от ответа Kent Lai здесь, я смог зафиксировать его.
Я поместил <global-method-security>
элемент в моем app-servlet.xml
но разделил определения безопасности в security.xml
, где web.xml
имеет contextConfigLocation
для app-servlet.xml
и security.xml
.
Работы как очарование теперь!
После проведения большего количества исследования на этой проблеме я пришел к следующему заключению/решению. Я не уверен, на ли это 100% корректно.. но это работает.
Я поместил всю свою конфигурацию в файле dispatcher-servlet.xml. Таким образом вместо того, чтобы иметь disptacher-servlet.xml и application-context.xml. dispatcher-servlet.xml загружается приложением (contextConfigLocation). В рамках dispatcher-servlet.xml я импортирую свой security-context.xml и datasource-context.xml. Afer, что, все работает.
Попытайтесь поместить аннотации на класс реализации вместо интерфейса и посмотрите, работает ли это. Я закончил тем, что делал это на недавнем проекте, потому что я также использовал атрибут @Transactional на своем уровне служб, и документы Spring рекомендуют поместить документы на классе а не интерфейсе. Я не знаю, могла ли та же проблема относиться к @Secured, но я хотел сохранить аннотации в том же месте. См. Документы Spring
Относительно ответа Kent Lai..., который является хорошей идеей..., удостоверяются, что Ваш файл конфигурации безопасности на самом деле включается Spring.