我是Springs的新手,我坚持将数据从jsp传递给控制器 我在这里有一个列表页面,允许用户点击主键,然后该主键应传递给控制器,以便它检测用户查看页面的传入请求
我的列表jsp如下
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<style>
.tableimp {
margin-top: 150px;
}
</style>
</head>
<body>
<table align="center" border="1" class="tableimp">
<tr>
<th bgcolor="#2E64FE">USERNAME</th>
<!-- <td> </td> -->
<th bgcolor="#2E64FE">FIRSTNAME</th>
<!-- <td> </td> -->
<th bgcolor="#2E64FE">LASTNAME</th>
<!-- <td> </td> -->
<th bgcolor="#2E64FE">EMAIL</th>
<!-- <td> </td> -->
<th bgcolor="#2E64FE">USERID</th>
</tr>
<c:forEach items="${stkList}" var="maps">
<tr>
<td colspan="5"> </td>
</tr>
<tr>
<c:forEach items="${maps}" var="mapEntry">
<td align="center"> <c:choose>
<c:when test="${mapEntry.key eq 'userId'}">
<c:url var="userView" value="userView.do" />
<a href="<c:out value='userView.do?userId=${mapEntry.value}' />">${mapEntry.value}</a>
</c:when>
<c:otherwise>
${mapEntry.value}
</c:otherwise>
</c:choose></td>
</c:forEach>
</tr>
</c:forEach>
</table>
</body>
</html>
我的控制器
@RequestMapping(value="/userView.do*", method=RequestMethod.GET)
public ModelAndView viewUser(HttpServletRequest request)
{
try{
//I need that userId Here somehow
}
catch(Exception e)
{
e.printStackTrace();
}
return new ModelAndView("form","",null);
}
}
有谁能请给我一个如何实现任务的片段
我的网址会根据需要附加到浏览器:localhost:8080 / SpringMVC / userView.do?userId = 1
我需要在我的控制器中使用这个userId值:)
答案 0 :(得分:1)
您可以使用
获取userId请求参数Integer.parseInt(request.getParameter("userId"));
当然你需要额外的错误解析(不要抛出nullpointer,numberformat ......)
在我看来,你应该使用@RequestParam注释
@RequestMapping(value="/userView.do*", method=RequestMethod.GET)
public ModelAndView viewUser(@RequestParam int userId)
然后你得到的userId将自动转换为int,如果不存在,则返回带有HTTP BAD REQUEST