Spring无法获得表单值

时间:2014-09-24 22:35:39

标签: java spring jsp

我使用下面的servlet来获取表单值,当表单发布时我能够获取用户名和密码但无法在显示用户名/密码的mainpage.jsp中访问它。

Servlet

package com.school.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.school.beans.Login;

@Controller
public class Logincontroller {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView login() {
        return new ModelAndView("login", "loginform", new Login());
    }

    @RequestMapping(value = "/validatelogin", method = RequestMethod.POST)
    public String validatelogin(@ModelAttribute("SchoolManagement")Login login, 
               ModelMap model) {
        model.addAttribute("username", login.getUsername());
        model.addAttribute("password", login.getPassword());
        System.out.println("useranme = " + login.getUsername());
        System.out.println("password = " + login.getPassword());
        return "mainpage";
    }
}

的login.jsp

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<!-- 
<script src="javascript/login.js"></script>
<link rel="stylesheet" type="text/css" href="css/login.css"/>
http://www.mkyong.com/spring-mvc/spring-mvc-how-to-include-js-or-css-files-in-a-jsp-page/
 -->
 <!--<script src="<c:url value="/resources/js/jquery.1.10.2.min.js" />"></script>-->
<link href="<c:url value="/resources/css/login.css" />" rel="stylesheet">
<script src="<c:url value="/resources/js/login.js" />"></script>
<script
    src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
    <div id="top"></div>
    <div id="middle">
        <form:form method="POST" id="loginform" commandName="loginform" 
        action="/SchoolManagement/validatelogin">
            <form:label path="username"> Username:</form:label>
            <form:input path="username" />  <br>
            <form:label path="password"> Password:</form:label>
            <form:input path="password" /> 
            <input type="submit" value="submit">
        </form:form>
    </div>
    <div id="bottom"></div>

</body>
</html>

mainpage.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>    
<!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>MainPage</title>
</head>


<body>

    <h2>Submitted Student Information</h2>
    <table>
        <tr>
            <td>Name</td>
            <td>${username}</td>
        </tr>
        <tr>
            <td>Password</td>
            <td>${password}</td>
        </tr>
    </table>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

尝试直接从请求中获取值。

<%
  String username = (String) request.getAttribute("username");
  String password = (String) request.getAttribute("password");
%>

<table>
    <tr>
        <td>Name</td>
        <td><%= username %></td>
    </tr>
    <tr>
        <td>Password</td>
        <td><%= password %></td>
    </tr>
</table>

这应该肯定有用......如果没有,设置有问题。

答案 1 :(得分:0)

您的命令名称

commandName="loginform"

与模型属性

不同
@ModelAttribute("SchoolManagement")

尝试使用相同的名称