2013-03-19 47 views
1

我是新來的春天,我有一個任務要做。我爲使用spring mvc的員工創建了一個簡單的註冊表單,其結果顯示在另一個jsp頁面上,但我希望結果顯示在填充表單的同一個jsp頁面上,結果也應該以表格的形式顯示。使用Spring mvc將表格形式的表單重定向到表格的形式

我試着轉發和重定向選項,但我沒有得到結果。

這裏是我的文件:

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

Spring MVC的本身就是一個「往返」交易,這意味着你提交一個請求(表單提交,網址等),Spring MVC的路由請求和生成響應,在瀏覽器解釋爲頁面加載。你所要求的通常被稱爲AJAX,並且與Spring MVC直接很少有關係。

這是一個50000ft的過程視圖。在你的表單JSP上,當用戶「提交」表單時,你會得到一些JavaScript。例如,你可以通過一個jQuery事件處理程序來輸入類型按鈕。從那裏,你將收集表單值並使用AJAX調用提交它們。一旦響應回來,您就可以解析返回的數據,並再次使用JavaScript操作頁面上的DOM

可能有數百萬個關於如何在Web上使用多種不同技術進行此操作的示例。我個人認爲jQuery是我的JavaScript庫,我幾乎廣泛使用它的ajax capabilities。不過,這不是唯一的方法。

+0

嗨感謝您的答案..實際上,我知道這可以通過阿賈克斯,但我被告知通過春天這樣做,所以我試圖做,而不使用AJAX ..我沒有找到.. – user2185833 2013-03-20 04:22:26

+0

如果你的手綁在一起,那麼你唯一的選擇是發佈並等待頁面重裝。 – CodeChimp 2013-03-20 11:29:39

1

爲什麼不能你只是做

ModelAndView modelAndView = new ModelAndView("user"); 

,而不是

ModelAndView modelAndView = new ModelAndView("usersuccess"); 

如果你想顯示在同一頁面中得到答案。請注意,如果你想以表格形式顯示,你將不得不將代碼從usersuccess.jsp複製到user.jsp並相應地修改你的代碼

+0

我已經嘗試過這個東西很多次了,但是每次我做的時候都會給出一些綁定錯誤。如果你想我也會分享確切的錯誤 – user2185833 2013-03-20 04:19:15

+0

是的..請分享你得到的確切的錯誤。請提供詳細的日誌。 – ArunM 2013-03-20 06:12:16