通过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重定向的,请各位高手指正,谢谢!
redirectspringmvcspringmvc
在<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重定向的,请各位高手指正,谢谢!
redirectspringmvcspringmvc
解决方案 »
- ajax只刷新某个标签能做到吗
- 同一个应用在jboss下发布2份,启动第二个web的时候提示DuplicateMappingException?
- 一个比较简单的跳转问题,请教下大家~急
- 过滤器的问题??????????
- 怎样从数据库中通过日期型字段查询昨天的数据 oracle数据库
- jsp 编译错误:cannot resolve symbol: class DbConnection
- 用什么方法可以有效的监控在线的用户?
- 关于中文参数传递~~100分求助!
- 记录迷惑
- 如何解决session变量在servlet转向jsp的过程中丢失的问题?
- 求指教!Struts环境搭配完成后,启动tomcat如法找到struts.xml文件.40分
- 本人亲自制作的springMVC教程视频(8),持续更新中
http://localhost:8080/SpringMVC1/person/test
会首先经过SpringMVC视图解析器的处理?
看了很多网上的例子,里面的意思都是可以这样做,所以觉得很纳闷,而且如果不能这样的话,那么是不是每一个视图都一定要通过控制器进行转发处理?这样不是特别麻烦吗,Spring MVC有没有对此提出解决方案呢?此外,不能使用return new ModelAndView(new RedirectView("/person/test"));也让我很郁闷,难道不能对视图地址重定向处理吗?如果要重定向到一个地址该怎么操作呢?
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重定向的
给一下出处?
如果要修改程序的话需要你将jsp文件放在WEBROOT目录下.
2.return new ModelAndView();里面直接写路径就可以了;
不会给你加前缀后后缀
所以你的 "/ddd/dd",它是不认识的
要你自己写全路径“/xx/xxx.jsp”
但是这样做只是相当于forward,不能redirect
我是想所有的jsp文件都放到Web-INF目录下面,结合Spring Security来控制JSP文件的访问权限。
如果不放到WEB-INF目录下面,安全性就没有保障了。
比如说定一个Action, 只监控/*.jsp, 收到请求以后代码new ModelAndView返回.
如果是forward的话那我就不会来这里求助了,我是想要进行redirect处理。
如果是forward,此时用户刷新操作,又会发生一次提交操作,如果redirect到一个新页面就不存在这种问题了。
但是我还是有一个问题,如果每次redirect都要写一个控制类不是非常麻烦吗?有没有一个通用的控制器类能解决类似redirect问题?谢谢!
@RequestMapping(value="/test")
public ModelAndView test(HttpServletRequest request,HttpServletResponse response)
{
//下面redirect是到一个控制器地址,而不是一个视图地址;
return new ModelAndView("redirect:/person/test1");
}
@RequestMapping(value="/test1")
public ModelAndView test1(HttpServletRequest request,HttpServletResponse response)
{
//这里返回一个视图地址,不加redirect.
return new ModelAndView("/person/testpage");
}
public String getView(@PathVariable Long id, Model model) {
return new ModelAndView("/person/id");
}
{id}是url中的一部分 这样就可以使用id这个变量了,你可是试试应该是好用的,说实话你说好用我很高兴,我并没有实际应用过spring mvc 就昨天看了几个例子,希望对你有帮助
呵呵,看来你对MVC编程了解的很深.我对return new ModelAndView("redirect:/person/test1")语句中如果加了"redirect:"就不行很不解.多谢你了.
http://localhost:8080/SpringMVC1/person/test
会首先经过SpringMVC视图解析器的处理?感觉原理都没有搞清楚!