使用Spring mvc以表格的形式将表单结果重定向到同一表单页面上

时间:2013-03-19 10:10:59

标签: spring-mvc

我是春天新手,我有一项任务要做。我使用spring mvc为员工创建了一个简单的注册表单,其结果显示在另一个jsp页面上,但我希望结果显示在我填写表单的同一个jsp页面上,结果也应该是表格形式

我尝试了前进和重定向选项,但我没有得到结果。

以下是我的文件:

EmployeeFormController.java

public class EmployeeFormController extends SimpleFormController {
@Override
protected ModelAndView onSubmit(Object command)
throws ServletException {
Employee employee = (Employee) command;  

ModelAndView modelAndView = new ModelAndView("usersuccess");
modelAndView.addObject("employee", employee);
return modelAndView;  
}  

}

user.jsp

    <%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@ taglib prefix="spring" uri="/spring"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!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>Employee Personal Details</title>
   </head>
   <body>
   <center> <h3>Employee Personal Details</h3>
   <br/>
   <form:form commandName="user" method="POST" name="user">
   <table border="0">
   <tr>
   <td>Name:</td>
   <td><form:input path="name"/></td>
   <td><font color="red"><form:errors path="name"/></font></td>
   </tr>
   <tr>
   <td>Email ID:</td>
   <td><form:input path="emailid"/></td>
   <td><font color="red"><form:errors path="emailid"/></font></td>
    </tr>
  <tr>
 <td>Date of birth:</td>
 <td><form:input path="dob"/></td>
<td><font color="red"><form:errors path="dob"/></font></td>
</tr>
<tr>
<td>Qualification:</td>
<td><form:input path="qualification"/></td>
<td><font color="red"><form:errors path="qualification"/></font></td></tr>
<tr>
<td>Contact Number:</td>
<td><form:input path="contact"/></td>
<td><font color="red"><form:errors path="contact"/></font></td>
</tr> 
<tr>
<td>Address:</td>
<td><form:input path="address"/></td>
<td><font color="red"><form:errors path="address"/></font></td>
</tr>
<tr> 
<td colspan="3" align="center"><input type="submit" value="Save"/></td> 
</tr>
</table>
</form:form>
</center> 
</body>
</html>

usersuccess.jsp

<table border = 2>
<tr>
<td colspan="2" align="center"><font size="5">Employee Information</font></td> 
</tr>
<tr>
<td>Name:</td>
<td><core:out value="${employee.name}"/></td> 
</tr>
<tr>
<td>Email ID:</td>
<td><core:out value="${employee.emailid}"/></td> 
</tr>
<tr>
<td>Date Of Birth:</td>
<td><core:out value="${employee.dob}"/></td> 
</tr>
<tr>
<td>Qualification:</td>
<td><core:out value="${employee.qualification}"/></td> 
</tr>
<tr>
<td>Contact Number:</td>
<td><core:out value="${employee.contact}"/></td> 
</tr>
<tr>
<td>Address:</td>
<td><core:out value="${employee.address}"/></td> 
</tr>
</table>

调度-servlet.xml中

<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>
<bean id="userController" class="com.web.EmployeeFormController">
<property name="sessionForm"><value>false</value></property>
<property name="commandName"><value>user</value></property>
<property name="commandClass"><value>com.web.Employee</value></property>
<property name="formView"><value>user</value></property>
<property name="successView"><value>usersuccess</value></property>
</bean>

2 个答案:

答案 0 :(得分:1)

为什么你不能这样做

ModelAndView modelAndView = new ModelAndView("user");

而不是

ModelAndView modelAndView = new ModelAndView("usersuccess");

如果要在同一页面中显示答案。请注意,如果要以表格形式显示,则必须将usersuccess.jsp中的代码复制到user.jsp并相应地修改代码

答案 1 :(得分:0)

Spring MVC本身就是一个“往返”交易,意味着您提交请求(表单post,url等),Spring MVC路由请求并生成响应,浏览器将其解释为页面加载。你要求的通常被称为AJAX,并且与Spring MVC没什么关系。

这是一个50000英尺的过程视图。在表单JSP上,当用户“提交”表单时,您将调用一些JavaScript。例如,您可以输入带有jQuery事件处理程序的type按钮。从那里,您将收集表单值并使用AJAX调用提交它们。一旦响应返回,您将再次使用JavaScript解析返回的数据并操纵页面上的DOM

有很多关于如何使用多种不同技术在网络上执行此操作的示例。我个人将jQuery作为我的JavaScript库,我几乎使用它ajax capabilities。但这不是唯一的方法。