日期:2014-05-17  浏览次数:20678 次

求助:SpringMVC中JSP文件不能进行Redirect处理。
通过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

------解决方案--------------------
引用:
引用:引用:我说得视图地址是指经过SpringMVC视图解析器处理过的地址。并不是直接访问Web-INF下的JSP文件。
通过这个地址访问
http://localhost:8080/SpringMVC1/person/test
会首先经过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 就昨天看了几个例子,希望对你有帮助