我是春天新手,我有一项任务要做。我使用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>
答案 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。但这不是唯一的方法。