在Spring mvc中将数据从jsp传递给控制器

时间:2014-09-03 16:53:31

标签: jsp spring-mvc controller

我是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>&nbsp;&nbsp;</td> -->
            <th bgcolor="#2E64FE">FIRSTNAME</th>
            <!--            <td>&nbsp;&nbsp;</td> -->
            <th bgcolor="#2E64FE">LASTNAME</th>
            <!--            <td>&nbsp;&nbsp;</td> -->
            <th bgcolor="#2E64FE">EMAIL</th>
            <!--            <td>&nbsp;&nbsp;</td> -->
            <th bgcolor="#2E64FE">USERID</th>
        </tr>

        <c:forEach items="${stkList}" var="maps">
            <tr>
                <td colspan="5">&nbsp;&nbsp;</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值:)

1 个答案:

答案 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