Spring MVC 报异常:File "/WEB-INF/page/main/index/session.jsp" not found

Hjon2019 2015-01-04 02:05:42
我的项目前端使用的是DWZ框架:http://j-ui.com/
后台采用Spring MVC功能
我在dispatcher-servlet.xml中配置了以下代码:

<!--配置一个viewResolver来处理返回的页面,配置前置和后置-->
<bean id="viewresolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/page/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>

用于方便在Controller中返回字符串时,直接前后链接相应文件路径。
现在遇到一个问题:
有的Controller不是返回一个页面,而是通过Ajax请求,直接在前台取得相应的值。
现在已经实现了相关的功能,但是每次通过ajax 请求之后,后台就会报以下类似的异常。
其中/main/index/session是我后台请求的Controller名称。

2015-1-4 13:57:41 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet dispatcher threw exception
javax.servlet.ServletException: File "/WEB-INF/page/main/index/session.jsp" not found
at org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:335)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:229)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.sl.framework.filter.DatasourceFilter.doFilter(DatasourceFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

急求高人指点迷津。。。
...全文
2671 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2015-11-18
  • 打赏
  • 举报
回复
原因很简单,你没有指明返回的responsebody是json数据 默认返回的是html/text 当然是去找页面了 还有你这个明明是个GET请求,你为什么要POST提交啊,我看到你后台controller中的方法 压根没用到id啊,你提交那个东西干嘛/? 我估计你工作不超过3年,接触Spring3 MVC也是时间不长!看代码就知道 算我吐槽,别拍砖!
gloomyfish 2015-11-18
  • 打赏
  • 举报
回复
原因很简单,你没有指明返回的responsebody是json数据 默认返回的是html/text 当然是去找页面了 还有你这个明明是个GET请求,你为什么要POST提交啊,我看到你后台controller中的方法 压根没用到id啊,你提交那个东西干嘛/? 我估计你工作不超过3年,接触Spring3 MVC也是时间不长!看代码就知道 算我吐槽,别拍砖!
ding_tengfei 2015-11-18
  • 打赏
  • 举报
回复
请问哥们这个问题解决了吗?我也遇到这个问题
ruchiruzui2012 2015-06-05
  • 打赏
  • 举报
回复
我也想知道楼主怎么将这个异常抛出的
skyhitnow 2015-01-04
  • 打赏
  • 举报
回复
起码应该把当前的response传入调用的方法,否则你怎么向里面写数据?
skyhitnow 2015-01-04
  • 打赏
  • 举报
回复
method应该设置为post
Inhibitory 2015-01-04
  • 打赏
  • 举报
回复
你这个看起来都挺奇怪,request mapping没有返回值,没这么做过。 .action是用那个servlet处理的? ajax我都是用@ResponseBody 先写个最简单的SpringMVC,保证环境后在做复杂点的。
Hjon2019 2015-01-04
  • 打赏
  • 举报
回复
引用 1 楼 guo315648865 的回复:
session.jsp 没发现 你看看WEB-INF/page/main/index这个目录下有这个session.jsp 吗
肯定没有这个文件,我没有用到这个文件,我是用Ajax请求这个方法。然后在前端直接显示请求到的内容的: 前端请求:

function session() {
	$.post("main/index/session.action",{id:1}, function(data) {console.log(data);});
} 
后台Controller代码

	@RequestMapping(value = "main/index/session")
	public void session() {
		this.outputText("防止Session过期");
	}
文哥xxx 2015-01-04
  • 打赏
  • 举报
回复
session.jsp 没发现 你看看WEB-INF/page/main/index这个目录下有这个session.jsp 吗

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧