Skip to content

Commit

Permalink
working with an api endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin Shield committed Feb 3, 2014
1 parent 15dd850 commit f59fa9f
Show file tree
Hide file tree
Showing 10 changed files with 226 additions and 16 deletions.
2 changes: 1 addition & 1 deletion HelloWorld.iml
Expand Up @@ -10,8 +10,8 @@
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/resources" />
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/springapp/mvc/UserController.java
@@ -1,5 +1,8 @@
package com.springapp.mvc;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
Expand All @@ -8,6 +11,9 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.*;



@Controller
public class UserController {
Expand All @@ -20,6 +26,23 @@ public String listUsers(ModelMap model) {
model.addAttribute("users", userRepository.findAll());
return "users";
}

@RequestMapping(value = "/api/users", method = RequestMethod.GET)
public
@ResponseBody
String listUsersJson(ModelMap model) throws JSONException {
JSONArray userArray = new JSONArray();
for (User user : userRepository.findAll()) {
JSONObject userJSON = new JSONObject();
userJSON.put("id", user.getId());
userJSON.put("firstName", user.getFirstName());
userJSON.put("lastName", user.getLastName());
userJSON.put("email", user.getEmail());
userArray.put(userJSON);
}
return userArray.toString();
}

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute("user") User user, BindingResult result) {
userRepository.save(user);
Expand All @@ -30,4 +53,5 @@ public String deleteUser(@PathVariable("userId") Long userId) {
userRepository.delete(userRepository.findOne(userId));
return "redirect:/";
}

}
6 changes: 3 additions & 3 deletions src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml
@@ -1,9 +1,10 @@
<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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

<context:component-scan base-package="com.springapp.mvc"/>

Expand All @@ -12,7 +13,6 @@
<property name="suffix" value=".jsp"/>
</bean>


<jpa:repositories base-package="com.springapp.mvc"/>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
Expand Down
5 changes: 0 additions & 5 deletions src/main/webapp/WEB-INF/pages/hello.jsp

This file was deleted.

78 changes: 78 additions & 0 deletions src/main/webapp/WEB-INF/pages/users.jsp
@@ -0,0 +1,78 @@
<!doctype html>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
<meta charset="utf-8">
<title>Spring MVC Application</title>

<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap.css" rel="stylesheet">
<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet">
</head>

<body>

<div class="container">
<div class="row">
<div class="span8 offset2">
<h1>Users</h1>
<form:form method="post" action="add" commandName="user" class="form-horizontal">
<div class="control-group">
<form:label cssClass="control-label" path="firstName">First Name:</form:label>
<div class="controls">
<form:input path="firstName"/>
</div>
</div>
<div class="control-group">
<form:label cssClass="control-label" path="lastName">Last Name:</form:label>
<div class="controls">
<form:input path="lastName"/>
</div>
</div>
<div class="control-group">
<form:label cssClass="control-label" path="email">Email:</form:label>
<div class="controls">
<form:input path="email"/>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" value="Add User" class="btn"/>
</form:form>
</div>
</div>

<c:if test="${!empty users}">
<h3>Users</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.lastName}, ${user.firstName}</td>
<td>${user.email}</td>
<td>
<form action="delete/${user.id}" method="post"><input type="submit" class="btn btn-danger btn-mini" value="Delete"/></form>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</c:if>
</div>
</div>
</div>

</body>
</html>
14 changes: 14 additions & 0 deletions target/HelloWorld/WEB-INF/classes/META-INF/persistence.xml
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:spring" />
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>
</persistence-unit>
</persistence>
16 changes: 14 additions & 2 deletions target/HelloWorld/WEB-INF/mvc-dispatcher-servlet.xml
@@ -1,9 +1,10 @@
<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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

<context:component-scan base-package="com.springapp.mvc"/>

Expand All @@ -12,4 +13,15 @@
<property name="suffix" value=".jsp"/>
</bean>

<jpa:repositories base-package="com.springapp.mvc"/>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="defaultPersistenceUnit"/>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
5 changes: 0 additions & 5 deletions target/HelloWorld/WEB-INF/pages/hello.jsp

This file was deleted.

78 changes: 78 additions & 0 deletions target/HelloWorld/WEB-INF/pages/users.jsp
@@ -0,0 +1,78 @@
<!doctype html>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
<meta charset="utf-8">
<title>Spring MVC Application</title>

<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap.css" rel="stylesheet">
<link href="http://twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet">
</head>

<body>

<div class="container">
<div class="row">
<div class="span8 offset2">
<h1>Users</h1>
<form:form method="post" action="add" commandName="user" class="form-horizontal">
<div class="control-group">
<form:label cssClass="control-label" path="firstName">First Name:</form:label>
<div class="controls">
<form:input path="firstName"/>
</div>
</div>
<div class="control-group">
<form:label cssClass="control-label" path="lastName">Last Name:</form:label>
<div class="controls">
<form:input path="lastName"/>
</div>
</div>
<div class="control-group">
<form:label cssClass="control-label" path="email">Email:</form:label>
<div class="controls">
<form:input path="email"/>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" value="Add User" class="btn"/>
</form:form>
</div>
</div>

<c:if test="${!empty users}">
<h3>Users</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.lastName}, ${user.firstName}</td>
<td>${user.email}</td>
<td>
<form action="delete/${user.id}" method="post"><input type="submit" class="btn btn-danger btn-mini" value="Delete"/></form>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</c:if>
</div>
</div>
</div>

</body>
</html>
14 changes: 14 additions & 0 deletions target/classes/META-INF/persistence.xml
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:spring" />
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>
</persistence-unit>
</persistence>

0 comments on commit f59fa9f

Please sign in to comment.