Как узнать момент, когда срабатывает @RequestMapping? - PullRequest
0 голосов
/ 10 июня 2011

У меня есть класс Spring MVC Controller (bean):

@Controller
@RequestMapping("/index.jsp")
public class EjbCaller {

    @Autowired
    private InfoBean infoBean;

    public EjbCaller() {
        System.out.println("creating !!!!!!!!!!!!!!!!!!!!!!!!!!");
    }

    @ModelAttribute("textFromService")
    public String call() {
       System.out.println("!!!!!!!!!!!!!!!!!!!1 gogogogog");
       return infoBean.getRefSampleService().doService();
    }    
}

Как узнать, что @RequestMapping ("/ index.jsp") хорошо срабатывает, когда я захожу в index.jsp?Потому что я не знаю, правильно ли я добавляю значение в аннотацию @RequestMapping, или, может быть, что-то не так с @ModelAttribute, потому что он также не срабатывает ..

В моем index.jsp у меня есть такой код:

<p>
    <span>from SampleService: ${textFromService} </span>
</p>

О моем использовании / настройках:

У меня есть DispatcherServlet в web.xml, у меня есть, но он не работает.Я думаю, ModelAndView это старый подход к использованию MVC, @ModelAttribute это новый подход, насколько я понимаю.Вот почему я использую @ ModelAtrribute.

У меня есть вывод в jbossConsole из EJBCaller из конструктора, но не при вызове () - метод вызывает, поэтому я не знаю, работает этот метод или нет.

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Контроллеры - это только одна часть уравнения MVC, у вас должно быть:

Контроллеры с аннотациями @RequestMapping, отмечающие, какие URL они обрабатывают, они (по сути) возвращают представления.В Spring MVC это делается с помощью ViewResolvers, самое простое:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

Итак, вы можете сделать что-то вроде

@RequestMapping(value="/test/{myParam}", method=RequestMethod.GET)
public ModelAndView myMethod(@PathVariable("myParam") String param) { 
     ModelAndView mv = new ModelAndView();
     mv.setViewName("index"); // now put index.jsp in /WEB-INF/views
     // try passing the input back to the view so you can play around
     // with the view/parameter handling
     mv.addObject("variableName", param); 
}

В вашем конфигурационном файле Spring есть кучапараметры, которые я часто использую:

<mvc:annotation-driven />
<bean name="someController" class="..."/>

Затем это будет выбрано.

Не забудьте свой org.springframework.web.servlet.DispatcherServlet в web.xml

0 голосов
/ 13 июня 2011

Я только начинаю с Spring Framework и использую хорошо проверенную ловкость:

public void anyMethod() {
    throw new Error("You're here");
}
Важно знать, что в приложениях J2EE нет консольного вывода, потому что эти приложения запускаются в контейнере где-то на сервере.(Это даже случай сервлета в Tomcat.) Вы должны использовать некоторую систему ведения журнала вместо STDOUT или выдать ошибку (но - конечно - не в версии выпуска в отличие от системы ведения журнала.)

Почему Error?Как вы могли бы сейчас, есть два вида броска.Ошибки и исключения, распространяющиеся на RunTimeException, не нужно отлавливать.Таким образом, эти метки вы можете легко отправить в круиз через стек вверх и позволить их перехватывать и регистрировать контейнером.

Если вы видите страницу с ошибкой 500 и обнаруживаете в трассировке стека сообщение Вы здесь, вы успешно установили отображение запроса.Это просто, быстро и стильно.

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