springmvc 不能跳转到/WEB-INF/jsp/ 的问题

低调_小哥 2013-12-05 11:41:12
这个问题困扰了我好几天,求大牛支持!!!谢谢
问题描述:前端可以通过地址访问到controller层,控制层不能返回jsp页面,也不报错
spring3mvc-servlet.xml配置如下

<!-- 添加注解驱动 -->
<mvc:annotation-driven />

<!-- 使Spring支持自动检测组件,如注解的Controller 这里只能扫描controller包如果扫描了service包 则事务会失效 -->
<context:component-scan base-package="china.home.daughter.*.*.controller*"/>

<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />


web.xml配置

<!-- spring mvc 配置 -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring/spring3mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>


控制层代码:

@RequestMapping(value = "/login.html", method = RequestMethod.GET)
public String login(HttpServletRequest request, HttpServletResponse response, User user) {

User user2 = userService.getUserByUserNamePassword(user.getUsername(), user.getPassword());
if (null != user2) {
User user3 = new User();
user3.setUsername(CommonUtil.getUUID());
user3.setPassword("");
// 保存方法
userService.saveUser(user3);
// 更新用户
user2.setRealName("JeffreyJi");
userService.updateUser(user2);
// 获取user
logger.info(CommonUtil.isNull(userService.getUserById(user2.getId())) + "");
}
if (null != user2) {
logger.info(user2.toString());
request.getSession().setAttribute("user", user2);
} else {

}
logger.info("请求成功!");
return "main1/main1";///WEB-INF/jsp/ 下有文件夹main1 下面有 main1.jsp
}
...全文
10826 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
hu823287929 2014-05-05
  • 打赏
  • 举报
回复
引用 25 楼 xhselina 的回复:
找到原因了,是因为easyui的表单提交是异步的所以不能跳转。谢谢大家的建议
忍不住笑了
低调_小哥 2013-12-09
  • 打赏
  • 举报
回复
找到原因了,是因为easyui的表单提交是异步的所以不能跳转。谢谢大家的建议
低调_小哥 2013-12-06
  • 打赏
  • 举报
回复
引用 18 楼 wwx0613 的回复:
[quote=引用 17 楼 xhselina 的回复:] [quote=引用 16 楼 wwx0613 的回复:] 控制层不能返回jsp页面,也不报错 是指返回的jsp页面是404还是空白页面?
我就做了一个登陆页面 点击提交以后,还在这个页面。 我前端用的是jquery easyui 怀疑出现问题的原因是:easyui 提交的方式 是异步提交 也去官网看了 按着官网的提交方式写的

$('#ff').form('submit',{
		url:'userLogin/login.html',
		onSubmit:function(){
			return $(this).form('validate');
		},
		success:function(){
			alert("1234");
		}
	});
可是 还是不行。[/quote] 是提交方式的问题吧,你的form和action都改为post方式提交试一下method = RequestMethod.POST[/quote] 发现问题了,不是POST的问题,我用jquery:$.('#ff').submit()的提交就可以跳转,用easyui本身的就不行,还不知道为什么? 以前还用过easyui 从来没发现这样的问题
junny_spinery 2013-12-06
  • 打赏
  • 举报
回复
你地址直接可以访问的原因是,你地址访问的方式就是get提交方式,而你表单提交是POST提交的
junny_spinery 2013-12-06
  • 打赏
  • 举报
回复
引用 17 楼 xhselina 的回复:
[quote=引用 16 楼 wwx0613 的回复:] 控制层不能返回jsp页面,也不报错 是指返回的jsp页面是404还是空白页面?
我就做了一个登陆页面 点击提交以后,还在这个页面。 我前端用的是jquery easyui 怀疑出现问题的原因是:easyui 提交的方式 是异步提交 也去官网看了 按着官网的提交方式写的

$('#ff').form('submit',{
		url:'userLogin/login.html',
		onSubmit:function(){
			return $(this).form('validate');
		},
		success:function(){
			alert("1234");
		}
	});
可是 还是不行。[/quote] 是提交方式的问题吧,你的form和action都改为post方式提交试一下method = RequestMethod.POST
低调_小哥 2013-12-06
  • 打赏
  • 举报
回复
引用 16 楼 wwx0613 的回复:
控制层不能返回jsp页面,也不报错
是指返回的jsp页面是404还是空白页面?

我就做了一个登陆页面
点击提交以后,还在这个页面。 我前端用的是jquery easyui
怀疑出现问题的原因是:easyui 提交的方式 是异步提交 也去官网看了 按着官网的提交方式写的

$('#ff').form('submit',{
url:'userLogin/login.html',
onSubmit:function(){
return $(this).form('validate');
},
success:function(){
alert("1234");
}
});
可是 还是不行。
junny_spinery 2013-12-06
  • 打赏
  • 举报
回复
控制层不能返回jsp页面,也不报错 是指返回的jsp页面是404还是空白页面?
低调_小哥 2013-12-06
  • 打赏
  • 举报
回复
引用 14 楼 wwx0613 的回复:
[quote=引用 13 楼 xhselina 的回复:] [quote=引用 9 楼 wwx0613 的回复:] 特意试了你的配置,你提供的配置是没问题的,如果还是找不到页面的话,还是检查一下你配置文件的路径,jsp文件的路径是否正确
jsp路径应该不会错,我直接在地址栏里写地址就可以访问[/quote] WEB-INF下的jsp可以直接访问地址吗?[/quote] http://localhost:8888/daughter/userLogin/login.html?username=admin&password=admin 是这种地址
junny_spinery 2013-12-06
  • 打赏
  • 举报
回复
引用 13 楼 xhselina 的回复:
[quote=引用 9 楼 wwx0613 的回复:] 特意试了你的配置,你提供的配置是没问题的,如果还是找不到页面的话,还是检查一下你配置文件的路径,jsp文件的路径是否正确
jsp路径应该不会错,我直接在地址栏里写地址就可以访问[/quote] WEB-INF下的jsp可以直接访问地址吗?
桃园闲人 2013-12-06
  • 打赏
  • 举报
回复
main1/main1修改为/main1/main1试试看。
SimonDW 2013-12-06
  • 打赏
  • 举报
回复
把/WEB-INF/jsp 换成 /WEB-INF/page吧 我的程序,不记得是升级了spring还是升级了tomcat之后,前一个路径就死活用不了了……
低调_小哥 2013-12-06
  • 打赏
  • 举报
回复
引用 21 楼 wwx0613 的回复:
[quote=引用 20 楼 xhselina 的回复:] [quote=引用 18 楼 wwx0613 的回复:] [quote=引用 17 楼 xhselina 的回复:] [quote=引用 16 楼 wwx0613 的回复:] 控制层不能返回jsp页面,也不报错 是指返回的jsp页面是404还是空白页面?
我就做了一个登陆页面 点击提交以后,还在这个页面。 我前端用的是jquery easyui 怀疑出现问题的原因是:easyui 提交的方式 是异步提交 也去官网看了 按着官网的提交方式写的

$('#ff').form('submit',{
		url:'userLogin/login.html',
		onSubmit:function(){
			return $(this).form('validate');
		},
		success:function(){
			alert("1234");
		}
	});
可是 还是不行。[/quote] 是提交方式的问题吧,你的form和action都改为post方式提交试一下method = RequestMethod.POST[/quote] 发现问题了,不是POST的问题,我用jquery:$.('#ff').submit()的提交就可以跳转,用easyui本身的就不行,还不知道为什么? 以前还用过easyui 从来没发现这样的问题[/quote] 那应该是因为jquery的版本不同吧,我用的easyui1.3.2版本的,对应jquery是1.8,用的提交方式就是你之前那种 $('#ff').form('submit',{ url:'userLogin/login.html', onSubmit:function(){ return $(this).form('validate'); }, success:function(){ alert("1234"); } });[/quote]不是版本的问题,我引用过1.3.2的版本 还是不行。
junny_spinery 2013-12-06
  • 打赏
  • 举报
回复
引用 20 楼 xhselina 的回复:
[quote=引用 18 楼 wwx0613 的回复:] [quote=引用 17 楼 xhselina 的回复:] [quote=引用 16 楼 wwx0613 的回复:] 控制层不能返回jsp页面,也不报错 是指返回的jsp页面是404还是空白页面?
我就做了一个登陆页面 点击提交以后,还在这个页面。 我前端用的是jquery easyui 怀疑出现问题的原因是:easyui 提交的方式 是异步提交 也去官网看了 按着官网的提交方式写的

$('#ff').form('submit',{
		url:'userLogin/login.html',
		onSubmit:function(){
			return $(this).form('validate');
		},
		success:function(){
			alert("1234");
		}
	});
可是 还是不行。[/quote] 是提交方式的问题吧,你的form和action都改为post方式提交试一下method = RequestMethod.POST[/quote] 发现问题了,不是POST的问题,我用jquery:$.('#ff').submit()的提交就可以跳转,用easyui本身的就不行,还不知道为什么? 以前还用过easyui 从来没发现这样的问题[/quote] 那应该是因为jquery的版本不同吧,我用的easyui1.3.2版本的,对应jquery是1.8,用的提交方式就是你之前那种 $('#ff').form('submit',{ url:'userLogin/login.html', onSubmit:function(){ return $(this).form('validate'); }, success:function(){ alert("1234"); } });
tony4geek 2013-12-05
  • 打赏
  • 举报
回复
楼上的方法试试呢?url 请求的方式变了。
  • 打赏
  • 举报
回复
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> 这个不要配成*.html,改为/
低调_小哥 2013-12-05
  • 打赏
  • 举报
回复
引用 9 楼 wwx0613 的回复:
特意试了你的配置,你提供的配置是没问题的,如果还是找不到页面的话,还是检查一下你配置文件的路径,jsp文件的路径是否正确
jsp路径应该不会错,我直接在地址栏里写地址就可以访问
低调_小哥 2013-12-05
  • 打赏
  • 举报
回复
引用 8 楼 ZuxiangHuang 的回复:
spring-servlet.xml 里加上 <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean> viewResolver bean 改为试试 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean>
不起作用,我直接在地址栏里写地址是没问题的
低调_小哥 2013-12-05
  • 打赏
  • 举报
回复
引用 7 楼 yeserph 的回复:
我这两天也 研究springMVC 你这个返回值不对吧返回值怎么还带路径呢 return "main1/main1";///WEB-INF/jsp/ 下有文件夹main1 下面有 main1.jsp 你要返回到main1目录下 你吧这个加到前缀上啊 p:prefix="/WEB-INF/jsp/main1" 然后return "main1" 你试试 应该可以
肯定跟这个没关系,我直接在地址栏里http://localhost:8888/daughter/userLogin/login.html?username=admin&password=admin 这个是可以访问的!
licip 2013-12-05
  • 打赏
  • 举报
回复
main1/main1 这个有没有那个对应的jsp页面。
junny_spinery 2013-12-05
  • 打赏
  • 举报
回复
特意试了你的配置,你提供的配置是没问题的,如果还是找不到页面的话,还是检查一下你配置文件的路径,jsp文件的路径是否正确
加载更多回复(6)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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