我有一个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();
}
}
当我转到index.jsp时,如何知道@RequestMapping(“ / index.jsp”)触发良好?因为我不知道我是否要为@RequestMapping批注添加正确的值,或者@ModelAttribute可能有问题,因为它也不会触发。
在我的index.jsp中,我有这样的代码:
<p>
<span>from SampleService: ${textFromService} </span>
</p>
关于我的用法/结算方式:
我在web.xml中有DispatcherServlet,我有,有点不起作用。我猜ModelAndView这是使用MVC的旧方法,据我所知@ModelAttribute这是一种新方法。这就是为什么我使用@ModelAtrribute。
我从EJBCaller的jbossConsole输出了构造函数,但是在call()方法调用时却没有输出,这就是为什么我不知道此方法是否运行的原因。
最佳答案
控制器只是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="..."/>
然后将其拿起。
不要忘记web.xml中的org.springframework.web.servlet.DispatcherServlet
关于java - 如何知道@RequestMapping触发的那一刻?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6308244/