Spring MVC 页面传参 Controller 获取不到~大神求救~~

librae0592 2015-08-29 09:35:08
JSP 页面往后台传一对象,对象的属性分别用 链接后的参数 还有 页面属性来传,对象为 pageModel 属性为 pageNo 和 pageSize
其中 pageNo 作为链接后的参数传
<script type="text/javascript">
function find(page){
document.getElementById("form1").action="user/findUser.do?pageNo="+page;
document.getElementById("form1").submit();
}
</script>

pageSize 作为页面中属性传
<input type="hidden" name="pageSize" value="10">

结果后台的 Controller 里面只取到 pageSize 的值。。取不到 pageNo 的值。。

@RequestMapping("/findUser")
public String findUser(PageModel<User> pageModel,Model model) throws Exception{

System.out.println("findUser method is in...pageNo is "+pageModel.getPageNo()+" and pageSize is "+pageModel.getPageSize());
。。。。。
}
打印出来是 findUser method is in...pageNo is 0 and pageSize is 10
崩溃了~~求大神答疑解惑~~~
...全文
1942 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_b_a_b_a_b_a_b 2015-08-31
  • 打赏
  • 举报
回复
spring配置呢?返回页面的配置,
scmod 2015-08-30
  • 打赏
  • 举报
回复
为啥post就行了.. get难道还会对?后面参数做点调整什么的...
librae0592 2015-08-30
  • 打赏
  • 举报
回复
引用 6 楼 shijing266 的回复:
@RequestMapping("/findUser") 改成: @RequestMapping(value="/findUser",method=RequestMethod.GET)
你提醒我了。。FORM 里面少写了 action= post 。。。加上后后台取到数据了。。但是又有新的问题。。页面回不来。。。 JSP 页面: <script type="text/javascript"> function find(page){ document.getElementById("pageform").action="user/findUser.do?pageNo="+page; // alert(document.getElementById("pageform").action); document.getElementById("pageform").submit(); } </script> <form id="pageform" action="" method="post"> <c:choose> <c:when test="${pageModel!=null}"> <input type="hidden" name="totalRecords" value="${pageModel.totalRecords}"> <input type="hidden" name="totalPages" value="${pageModel.totalPages}"> </c:when> <c:otherwise> </c:otherwise> </c:choose> <input type="hidden" name="pageSize" value="2"> <table class="tableborder" cellpadding="2" cellspacing="1"> <tbody> <tr class="smalltxt" bgcolor="#f3f6fa"> <td class="header">  ${pageModel.totalRecords}  </td> <td class="header">  ${pageModel.pageNo}/${pageModel.totalPages}  </td> <td>   <a href="${pageContext.request.contextPath }/user/findUser.do?pageNo=1&pageSize=2"> 首  页 </a> </td> <c:if test="${pageModel.pageNo > 1}"> <td>   <a href="#" onclick="find(${pageModel.pageNo}-1)"> 上一页 </a> </td> </c:if> <c:if test="${pageModel.pageNo < pageModel.totalPages}"> <td>   <a href="#" onclick="find(${pageModel.pageNo}+1)"> 下一页 </a> </td> </c:if> <td>   <a href="#" onclick="find(${pageModel.totalPages})"> 尾  页 </a> </td> </tr> </tbody> </table> </form> Controller: //分页查找用户 @RequestMapping("/findUser") public String findUser(PageModel<User> pageModel,Model model) throws Exception{ // System.out.println("findUser method is in...pageNo is "+page); // pageModel.setPageNo(pageNo); System.out.println("findUser method is in...pageNo is "+pageModel.getPageNo()+" and pageSize is "+pageModel.getPageSize()); List<User> users = userService.findUsersByPage(pageModel); pageModel.setList(users); if(pageModel.getTotalRecords()==0){ pageModel.setTotalRecords(userService.countUsers()); pageModel.setTotalPages((pageModel.getTotalRecords() + pageModel.getPageSize()- 1) / pageModel.getPageSize()); } System.out.println("findUser method is in...TotalRecords is "+pageModel.getTotalRecords()+" and TotalPages is "+pageModel.getTotalPages()); System.out.println("findUser method is in...UserList is "+pageModel.getList().size()); model.addAttribute("pageModel",pageModel); return "user/userList"; }
  • 打赏
  • 举报
回复
如果实在获取不到,那就别拼接在action后面了,弄一个隐藏域hidden, name设置为pageNo,然后你把值放到隐藏域里面,在提交form
  • 打赏
  • 举报
回复
@RequestMapping("/findUser") 改成: @RequestMapping(value="/findUser",method=RequestMethod.GET)
librae0592 2015-08-30
  • 打赏
  • 举报
回复
引用 4 楼 scmod 的回复:
('1')改成(1)看下, 还有看下web控制台有传过去pageNo这个东西不? 参数之间不知道要不要自己加个&
就是控制台没有传过去。。 第一个参数不用加 & 的吧。。刚试过了加了还是传不过去。。
scmod 2015-08-30
  • 打赏
  • 举报
回复
('1')改成(1)看下, 还有看下web控制台有传过去pageNo这个东西不? 参数之间不知道要不要自己加个&
librae0592 2015-08-30
  • 打赏
  • 举报
回复
再过滤一下问题。。 就是浏览器直接输入 http://127.0.0.1:8080/shopping/user/findUser.do?pageNo=1 后台能取到 pageNo 值 但是用 <script type="text/javascript"> function find(page){ document.getElementById("form1").action="user/findUser.do?pageNo="+page; document.getElementById("form1").submit(); } </script> <a href="#" onclick="find(1)"> 首  页 </a> 后台就得不到 pageNo 值。。 死活不得其解啊。。。
librae0592 2015-08-30
  • 打赏
  • 举报
回复
引用 16 楼 qq_21873571 的回复:
返回值改成ModelAndView试试吧
不行。。之前试过了。。。
qq_21873571 2015-08-30
  • 打赏
  • 举报
回复
返回值改成ModelAndView试试吧
librae0592 2015-08-30
  • 打赏
  • 举报
回复
看 12/13 楼吧~~点击 首页 (链接访问)可以得到列表返回到 user/userList.jsp 但是点击其他的(通过 FORM 提交)返回不到 user/userList.jsp ,后台方法能执行得到结果,返回视图的时候有问题,回到 http://127.0.0.1:8080/shopping/# 了。。。。 但是不知道错在哪里。。。求大神指点。。
  • 打赏
  • 举报
回复
我更不知道了.....
librae0592 2015-08-30
  • 打赏
  • 举报
回复
补充一下页面

<form id="pageform" action="" method="post">
			
			<c:choose>  
  				<c:when test="${pageModel!=null}"> 
	  				<input type="hidden" name="totalRecords" value="${pageModel.totalRecords}">
	  				<input type="hidden" name="totalPages" value="${pageModel.totalPages}">
					
			   	</c:when>  
			   	<c:otherwise> 
			  		
			  	</c:otherwise>  
			</c:choose> 
			
			<input type="hidden" name="pageSize" value="2">
                       <table class="tableborder" cellpadding="2" cellspacing="1">
												<tbody>
													<tr class="smalltxt" bgcolor="#f3f6fa">
														<td class="header">
															 ${pageModel.totalRecords} 
														</td>
														<td class="header">
															 ${pageModel.pageNo}/${pageModel.totalPages} 
														</td>
														<td>
															 
															<a href="${pageContext.request.contextPath }/user/findUser.do?pageNo=1&pageSize=2"> 首  页 </a>
														</td>
														<c:if test="${pageModel.pageNo > 1}">
															<td>
																 
																<a  href="#" onclick="find(${pageModel.pageNo}-1)"> 上一页 </a>
															</td>
														</c:if>
														<c:if test="${pageModel.pageNo < pageModel.totalPages}">
															<td>
																 
																<a href="#" onclick="find(${pageModel.pageNo}+1)"> 下一页 </a>
															</td>
														</c:if>
														<td>
															 
															<a href="#" onclick="find(${pageModel.totalPages})"> 尾  页 </a>
														</td>
														
														
													</tr>
												</tbody>
		</table>
 </form>
librae0592 2015-08-30
  • 打赏
  • 举报
回复

<script type="text/javascript">
			function find(page){
				
				document.getElementById("pageform").action="user/findUser.do?pageNo="+page;
			//	alert(document.getElementById("pageform").action);
				document.getElementById("pageform").submit();
			}
		</script>



@RequestMapping("/findUser")
	public String findUser(PageModel<User> pageModel,Model model) throws Exception{
//		System.out.println("findUser method is in...pageNo is "+page);
//		pageModel.setPageNo(pageNo);
		System.out.println("findUser method is in...pageNo is "+pageModel.getPageNo()+" and pageSize is "+pageModel.getPageSize());
		List<User> users = userService.findUsersByPage(pageModel);
		pageModel.setList(users);
		if(pageModel.getTotalRecords()==0){
			pageModel.setTotalRecords(userService.countUsers());
			pageModel.setTotalPages((pageModel.getTotalRecords() + pageModel.getPageSize()- 1) / pageModel.getPageSize());
		}
		System.out.println("findUser method is in...TotalRecords is "+pageModel.getTotalRecords()+" and TotalPages is "+pageModel.getTotalPages());	
		System.out.println("findUser method is in...UserList is "+pageModel.getList().size());	
		model.addAttribute("pageModel",pageModel);
		return "user/userList";
	}
控制台信息 findUser method is in...pageNo is 2 and pageSize is 2 http-8080-2 2015 八月 30 13:42:38,038 [DEBUG] findUsersByPage:46 - ooo Using Connection [jdbc:mysql://127.0.0.1:3306/shopping, UserName=root@127.0.0.1, MySQL-AB JDBC Driver] http-8080-2 2015 八月 30 13:42:38,038 [DEBUG] findUsersByPage:46 - ==> Preparing: select * from user limit ?,? http-8080-2 2015 八月 30 13:42:38,039 [DEBUG] findUsersByPage:46 - ==> Parameters: 2(Integer), 4(Integer) findUser method is in...TotalRecords is 5 and TotalPages is 3 findUser method is in...UserList is 3 控制台信息可以看到方法已经进去了。。分页信息也得到了。。就是最后回到视图的时候异常了。。可是我不知道问题出在哪里。。。
librae0592 2015-08-30
  • 打赏
  • 举报
回复
引用 10 楼 shijing266 的回复:
页面回不来就看你spring 关于返回页面的配置了,还有你返回的user/userList 这个地址 对比一下
版主大大。。配置是没问题的。。地址栏输入用GET 方式提交后就可以返回来 http://127.0.0.1:8080/shopping/user/findUser.do?pageNo=1&pageSize=2 但是页面上拼 ACTION 地址用 form submit 后回不到页面。。应该是异常了。。回到的是根路径 http://127.0.0.1:8080/shopping/#了 不知道怎么查。。。
  • 打赏
  • 举报
回复
页面回不来就看你spring 关于返回页面的配置了,还有你返回的user/userList 这个地址 对比一下
librae0592 2015-08-29
  • 打赏
  • 举报
回复
页面上通过 <a href="#" onclick="find('1')"> 首  页 </a>
来得到 pageNo 传到后台。。
目前还没搞定。。有大神光临么。。
librae0592 2015-08-29
  • 打赏
  • 举报
回复
测试了下浏览器直接敲 http://127.0.0.1:8080/shopping/user/findUser.do?pageNo=1 后台是可以取到值的。。 那么应该是 JS 里面拼 ACTION 取的值不对了。。
英文版:Expert Spring MVC and Web Flow 内容简介 《深入解析Spring MVCgn Web Flow》是Spring MVC 和Web Flow 两个框架的权威指南,书中包括的技巧和提示可以让你从这个灵活的框架中汲取尽可能多的信息。书中包含了一些开发良好设计和解耦的Web 应用程序的最佳实践,介绍了Spring 框架中的Spring MVCSpring Web Flow,以及着重介绍利用Spring 框架和Spring MVC 编写Web 应用程序的最佳方法。《深入解析Spring MVCgn Web Flow》还介绍了Spring 框架的设计模式,以及如何将同样的设计和技术应用到读者自己的代码中。 《深入解析Spring MVCgn Web Flow》适合各层次Spring Web 程序员阅读。 编辑推荐 《深入解析Spring MVCgn Web Flow》来自Spring开发团队的权威之作前所未有地深入剖析Spring MVC技术内幕大量专家经验和技巧,全面提升你的Web开发境界 Spring MVCSpring Web Flow是Spring平台上两个极为灵活而且功能强大的Web框架。前者是构建在Spring框架上的Web应用程序框架,可以同许多其他视图技术无缝集成;后者是控制业务处理流程的有效解决方案,提供了一种编写有状态和基于会话的Web应用程序的简便手段。 《深入解析Spring MVCgn Web Flow》出自Spring核心开发者之手,不仅详细分析代码,全面剖析了两个框架的各种特性(包括一些不为人知的技术亮点)。告诉读者如何最大程度地发挥出它们的潜力。还解密了设计这两个框架时的许多决策内幕、所应用的设计模式和面向对象技术,使读者能够更深入地了解Spring。并在自己的项目中运用这些专家技术,全面提升自己的Web开发境界。 《深入解析Spring MVCgn Web Flow》由spring框架的开发和维护者SpringSource公司组织编写,作者均为资深Spring工程师或咨询师。 Seth Ladd是资深Spring培训师,曾为NEC公司等许多国际性机构构建Web系统。Darren Davison和StevenDevijver都曾是Spring核心开发人员,在Spring源代码和文档中可以很容易地找到他们的名字。而Colin Yates、Keith Donald和Rob Harrop均是SpringSource资深工程师,仍然是Spring新版本开发的核心骨干。Yalcs是.J2EE主架构师,Donald是SpringWeb Flow负责人,Hartop是Spring与Tomcat成产品负责人。“《深入解析Spring MVCgn Web Flow》为Spring社区弥补了一大空白。” ——Lasse Koskela.JavaRanch版主,Test Driven作者“《深入解析Spring MVCgn Web Flow》是非常急缺的深入讲解Spring MVCf~~Spring Web Flow的图书堪与Pro Spring相媲美。” ——Steve Anglin,资深Java技术专家

81,122

社区成员

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

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