Использование SpEL и eval для вызова метода контроллера - PullRequest
0 голосов
/ 04 марта 2011

Мне было интересно, можно ли вызвать метод контроллера, используя тег со страницы JSP, немного похоже на то, как это делается в JSF.

Мой контроллер

@Controller(value="planesController")
@RequestMapping({"/planes"})
public class PlanesController {

    @Autowired
   private PlanesDAO planesDAO;

   public List<Plane> allPlanes(){

      return planesDAO.getAll();
}

Мой JSP

<sf:form>
    <s:eval expression="planesController.allPlanes()" var="planes" />

    <sf:checkboxes items="${planes}" path="planes"  id="avions"/>

</sf:form>

Я получаю исключение:

org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Field or property 'planesController' cannot be found on null

Я знаю, что могу использовать model.addAttribute, но я вызываю этот метод с нескольких страниц JSP, и я подумал, что одним из тегов было разрешение доступа к bean-компонентам из представлений.

Я использую Spring 3.0.5

Заранее спасибо

1 Ответ

0 голосов
/ 04 марта 2011

Допуск представления кода контроллера вызовов является просто неправильным, независимо от того, работает он или нет.Это MVC в обратном направлении.

Было бы лучше, если бы вы написали сервис, который делал то, что вы хотите, и предоставили бы вашему представлению доступ к этому сервису, но вы все равно нарушаете MVC.Во-первых, было бы еще лучше выполнить все эти вызовы на вашем контроллере и передать полученную модель в представление без каких-либо вызовов службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...