通过Eclipse新建一个名为SpringMVC1的工程,相关Spring MVC的Jar包已经正确导入,然后建立了一个test.jsp文件放到WEB-INF\pages\person\目录下。
在<Servletname>-servlet.xml中加入了如下配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
部署到Tomcat中启动。
问题1:在浏览器中输入地址:
http://localhost:8080/SpringMVC1/person/test,显示错误“The server encountered an internal error () that prevented it from fulfilling this request.”,请问各位高手,难道不能直接访问到该JSP吗?
我想是不是一定要通过控制器转发才行,于是我新建一个index.html页面,内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SpringMVC1 Test</title>
</head>
<body>
Hello,SpringMVC!
</body>
<form action="/SpringMVC1/personmg/testjsp">
test jsp view.
<input type=submit value="Submit">
</form>
</html>
然后新建一个Java类如下:
@Controller
@RequestMapping("/personmg")
public class PersonService{
@RequestMapping("/testjsp")
public ModelAndView testpage()
{
//return "redirect:/person/test";
return new ModelAndView("/person/test");
//return new ModelAndView(new RedirectView("/person/test"));
}
}
重新部署后发现
问题2:
使用return new ModelAndView("/person/test");语句时在index.html中点Submit按钮能正确显示test.jsp文件中得内容。如果使用return new ModelAndView(new RedirectView("/person/test"));或return "redirect:/person/test";语句则点Submit按钮后系统提示“The requested resource (/person/test) is not available.”。
很迷茫,Spring的文档中明明说明是可以直接在URL中使用视图地址也可以使用redirect重定向的,请各位高手指正,谢谢!
redirect spring mvc springmvc
------解决方案--------------------
我看到这里是这样用的,不知道有没有关系
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("DummyRedirect");
}
http://www.mkyong.com/spring-mvc/spring-mvc-redirectview-example/
还有你说
<<Spring的文档中明明说明是可以直接在URL中使用视图地址也可以使用redirect重定向的
给一下出处?
------解决方案--------------------
@RequestMapping(value="{id}", method=RequestMethod.GET)
public String getView(@PathVariable Long id, Model model) {
return new ModelAndView("/person/id");
}
{id}是url中的一部分 这样就可以使用id这个变量了,你可是试试应该是好用的,说实话你说好用我很高兴,我并没有实际应用过spring mvc 就昨天看了几个例子,希望对你有帮助