我有一个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() - 方法调用时,我不知道这个方法是否运行。
答案 0 :(得分:1)
控制器只是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
答案 1 :(得分:0)
我刚刚开始使用Spring框架,我使用了经过充分测试的技巧:
public void anyMethod() { throw new Error("You're here"); }重要的是要知道,J2EE应用程序中没有控制台输出,因为这些应用程序在服务器上的某个容器中运行。 (这甚至是Tomcat中的servlet的情况。)你应该使用一些日志系统代替STDOUT或抛出一个错误(当然 - 不是发布版本与日志系统不同。)
为什么Error
?就像你现在一样,有两种抛弃物。扩展RunTimeException
的错误和异常,您无需捕获。因此,您可以轻松地将这些抛弃物发送到堆叠向上,然后通过容器捕获并记录它们。
如果您看到包含错误500的页面,并且您在堆栈跟踪消息中找到了您在这里,则您已成功设置了请求映射。它很简单,很快,很有风格。