I am trying to run the Spring MVC with Jquery, but i am getting some weird problem. Whenever the application started it will go to the add user page. It is used to add the user, while that time jquery is not loading. I have a link in the add user page to the show user page, if i click the show user page and then come back to the add user page using back button in eclipse browser. Then jquery is working fine. Can any one please why it is not working in the first time and then it is working after the visiting the show user page? And then it is not working in any of the browser giving jquery 404 exception, inside eclipse only it is working. I have provided the code below. Thanks in advance.
package com.raistudies.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
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.bind.annotation.ResponseBody;
import com.raistudies.domain.User;
@Controller
public class UserListController {
private List<User> userList = new ArrayList<User>();
@RequestMapping(value="/AddUser.htm", method = RequestMethod.GET)
public String showForm() {
return "AddUser";
}
@RequestMapping(value = "/AddUser.htm", method = RequestMethod.POST)
public @ResponseBody
String addUser(@ModelAttribute(value = "user") User user,
BindingResult result) {
System.out.println(" add user controller...");
String str = "";
System.out.println(" User " + user.getName());
System.out.println(" User " + user.getEducation());
if (!result.hasErrors()) {
userList.add(user);
str = "User has been added to the list, total number of users are "
+ userList.size();
} else {
str = "Sorry, an error has occur. User has not been added to list." + result.getAllErrors();
}
System.out.println(" add user controller ends...");
return str;
}
@RequestMapping(value = "/showUsers.htm")
public String showUsers(ModelMap model) {
model.addAttribute("Users", userList);
return "ShowUsers";
}
}
package com.raistudies.domain;
public class User {
private String name;
private String education;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
}
under the WebContent i have a folder js - inside that i have jquery.js file.
under the WebContent i have WEB-INF folder, it has jsp and lib folder.
under jsp folder
AddUser.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>Add Users using ajax</title>
<script src="/AjaxWithSpringMVC2Annotation/js/jquery.js"></script>
<script type="text/javascript">
function doAjaxPost() {
// get the form values
alert('doAjaxPost');
var name = $('#name').val();
alert('name');
var education = $('#education').val();
$.ajax({
type : "POST",
url : "/AjaxWithSpringMVC2Annotation/AddUser.htm",
data : "name=" + name + "&education=" + education,
success : function(response) {
// we have the response
$('#info').html(response);
$('#name').val('');
$('#education').val('');
},
error : function(e) {
alert('Error: ' + e);
}
});
}
</script>
</head>
<body>
<h1>Add Users using Ajax ........</h1>
<table>
<tr>
<td>Enter your name :</td>
<td><input type="text" id="name" name="name"><br /></td>
</tr>
<tr>
<td>Education :</td>
<td><input type="text" id="education"><br /></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="Add Users"
onclick="doAjaxPost()"><br /></td>
</tr>
<tr>
<td colspan="2"><div id="info" style="color: green;"></div></td>
</tr>
</table>
<a href="/AjaxWithSpringMVC2Annotation/showUsers.htm">Show All
Users</a>
</body>
</html>
ShowUser.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"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Users Added using Ajax</title>
</head>
<body style="color: green;">
The following are the users added in the list :
<br>
<ul>
<c:forEach items="${Users}" var="user">
<li>Name: <c:out value="${user.name}" />; Education: <c:out
value="${user.education}" /></li>
</c:forEach>
</ul>
</body>
</html>
under WEB-INF
app-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.raistudies" />
<mvc:annotation-driven />
<!-- <mvc:resources location="/, classpath:/META-INF/web-resources/"
mapping="/resources/**" />
<mvc:resources mapping="/resources/**" location="/public-resources/" />
-->
<!-- <mvc:resources mapping="/js/**" location="/js/"/> -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>AjaxWithSpringMVC2Annotation</display-name>
<servlet>
<servlet-name>SpringMVCDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVCDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
under WEB-CONTENT
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<jsp:forward page="/AddUser.htm" />
jquery is working fine, are you saying you can add users after using the back button?jquery.jsis never found. I have to change the webapp configuration to make it work. I can't see how visiting another page and then returning makes a path suddenly work.