[jboss-cvs] JBossAS SVN: r99750 - in projects/snowdrop/examples/trunk/sportsclub: sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 21 09:09:56 EST 2010


Author: lvlcek at redhat.com
Date: 2010-01-21 09:09:55 -0500 (Thu, 21 Jan 2010)
New Revision: 99750

Added:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/accountDetail.jsp
Modified:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/AccountController.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/UserInput.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/searchAccount.jsp
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionService.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
Log:
Spring MVC (work in progress)

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-ejb/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java	2010-01-21 14:09:55 UTC (rev 99750)
@@ -1,27 +1,22 @@
 package org.jboss.spring.samples.sportsclub.invoicing.services;
 
-import java.math.BigDecimal;
-import java.util.Date;
-
-import javax.ejb.Local;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-
 import org.jboss.annotation.spring.Spring;
 import org.jboss.ejb3.annotation.LocalBinding;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.BalanceRepository;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.PaymentRepository;
 import org.jboss.spring.callback.SpringLifecycleInterceptor;
 
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import java.util.Date;
+
 @Stateless
 @Interceptors(SpringLifecycleInterceptor.class)
- at LocalBinding(jndiBinding="sportsclub/BillingService")
+ at LocalBinding(jndiBinding="sportsclub/BillingService") 
 public class BillingServiceImpl implements BillingService
 {
    @Spring(bean = "invoiceRepository", jndiName = "SpringDao")

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/AccountController.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/AccountController.java	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/AccountController.java	2010-01-21 14:09:55 UTC (rev 99750)
@@ -3,9 +3,14 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.ui.ModelMap;
-import org.springframework.validation.BindingResult;
+import org.jboss.snowdrop.samples.sportsclub.ejb.SubscriptionService;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
 
+import javax.ejb.EJB;
+import java.util.List;
+
 /**
  * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
  */
@@ -13,25 +18,50 @@
 public class AccountController
 {
 
+   private static final String[] invoiceStatus = new String[]{UserInput.INVOICE_WITH, UserInput.INVOICE_WITHOUT};
+
+   @EJB(mappedName = "sportsclub/SubscriptionService")
+   SubscriptionService subscriptionService;
+
+
+   /**
+    * Just forwarding to the view with fresh-empty model.
+    *
+    * @param userInput
+    * @return
+    */
    @RequestMapping(value = "/searchAccount.do", method = RequestMethod.GET)
    ModelMap enterPage(UserInput userInput)
    {
-      userInput.setData("get");
-
       ModelMap model = new ModelMap();
-      model.addAttribute(userInput);
+      model.addAttribute(userInput)
+           .addAttribute(invoiceStatus);
       return model;
    }
 
    @RequestMapping(value = "/searchAccount.do", method = RequestMethod.POST)
    ModelMap updateAccount(UserInput userInput)
    {
+      String nameFragment = userInput.getNameFragment();
+      Integer maxAccountNum = userInput.getMaxAccountNum();
 
-      userInput.setData("post");
+      List<Account> accountList = subscriptionService.findAccountsBySubscriberName(nameFragment, 0, maxAccountNum);
 
       ModelMap model = new ModelMap();
-      model.addAttribute(userInput);
+      model.addAttribute(userInput)
+           .addAttribute(accountList)
+           .addAttribute(invoiceStatus);
       return model;
    }
 
+   @RequestMapping(value = "/accountDetail.do", method = RequestMethod.GET)
+   ModelMap getAccountDetail(@RequestParam("id") String id)
+   {
+      Account account = subscriptionService.findAccountById(Long.parseLong(id));
+
+      ModelMap model = new ModelMap();
+      model.addAttribute(account);
+      return model;
+   }
+
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/UserInput.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/UserInput.java	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/java/org/jboss/snowdrop/samples/sportsclub/springmvc/UserInput.java	2010-01-21 14:09:55 UTC (rev 99750)
@@ -5,48 +5,54 @@
  */
 public class UserInput
 {
-   private boolean currentInvoice;
-   private String data;
-   private String firstName;
-   private String lastName;
+   private static final int DEFAULT_MAX_ACCOUNT_NUM = 20;
+   static final String INVOICE_WITH = "with";
+   static final String INVOICE_WITHOUT = "without";
 
-   public String getData()
-   {
-      return data;
-   }
+   private String invoiceStatus;
+   private Integer maxAccountNum = DEFAULT_MAX_ACCOUNT_NUM;
+   private String nameFragment;
 
-   public void setData(String data)
+   public String getNameFragment()
    {
-      this.data = data;
+      return nameFragment;
    }
 
-   public String getFirstName()
+   /**
+    * @param nameFragment if not null then it is always trimmed
+    */
+   public void setNameFragment(String nameFragment)
    {
-      return firstName;
+      if (nameFragment != null)
+      {
+         nameFragment = nameFragment.trim();
+      }
+      this.nameFragment = nameFragment;
    }
 
-   public void setFirstName(String firstName)
+   public Integer getMaxAccountNum()
    {
-      this.firstName = firstName;
+      return maxAccountNum;
    }
 
-   public String getLastName()
+   /**
+    * @param maxAccountNum if null then the value is set to DEFAULT_MAX_ACCOUNT_NUM
+    */
+   public void setMaxAccountNum(Integer maxAccountNum)
    {
-      return lastName;
+      if (maxAccountNum == null)
+         this.maxAccountNum = DEFAULT_MAX_ACCOUNT_NUM;
+      else
+         this.maxAccountNum = maxAccountNum;
    }
 
-   public void setLastName(String lastName)
+   public String getInvoiceStatus()
    {
-      this.lastName = lastName;
+      return invoiceStatus;
    }
 
-   public boolean isCurrentInvoice()
+   public void setInvoiceStatus(String invoiceStatus)
    {
-      return currentInvoice;
+      this.invoiceStatus = invoiceStatus;
    }
-
-   public void setCurrentInvoice(boolean currentInvoice)
-   {
-      this.currentInvoice = currentInvoice;
-   }
 }

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/accountDetail.jsp
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/accountDetail.jsp	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/accountDetail.jsp	2010-01-21 14:09:55 UTC (rev 99750)
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+<%--<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>--%>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
+
+<html>
+<head><title>Sports Club: Invoicing - account detail</title></head>
+<body>
+<form:form>
+    ID = <c:out value="${account.id}"/>
+</form:form>
+</body>
+</html>
\ No newline at end of file

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/searchAccount.jsp
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/searchAccount.jsp	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-webmvc/src/main/webapp/WEB-INF/jsp/searchAccount.jsp	2010-01-21 14:09:55 UTC (rev 99750)
@@ -3,34 +3,47 @@
 <%--<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>--%>
 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
-<%--<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>--%>
 
 <html>
 <head><title>Sports Club: Invoicing - search account</title></head>
-<body>Hello in invoicing!
-<p>This is it: <c:out value="${userInput.data}"/></p>
+<body>
 
 <form:form commandName="userInput">
-    <table>
+
+    Search accounts <form:select path="invoiceStatus" items="${stringList}"/> current invoice by subscriber name:<br/>
+    <form:input path="nameFragment"/> <input type="submit" value="Search"/><br/>
+    <span style="font-size:70%">
+        Display up to
+        <form:input path="maxAccountNum" maxlength="2" size="2" cssStyle="font-size:70%"/>
+        relevant accounts.
+    </span>
+</form:form>
+
+<c:if test="${empty accountList}">
+    Sorry no result matches...
+</c:if>
+<c:if test="${not empty accountList}">
+<table border="1">
+    <thead>
         <tr>
-        <tr>
-            <td>Current Invoice:</td>
-            <td><form:checkbox path="currentInvoice"/></td>
+            <td>#</td>
+            <td>ID</td>
+            <td>Subscriber name</td>
+            <td>Membership</td>
+            <td></td>
         </tr>
-            <td>First Name:</td>
-            <td><form:input path="firstName"/></td>
-        </tr>
+    </thead>
+    <c:forEach items="${accountList}" var="account" varStatus="s">
         <tr>
-            <td>Last Name:</td>
-            <td><form:input path="lastName"/></td>
+            <td><c:out value="${s.index}" /></td>
+            <td><c:out value="${account.id}" /></td>
+            <td><c:out value="${account.subscriber.name.firstName} ${account.subscriber.name.lastName}" /></td>
+            <td><c:out value="${account.membership.code}" /></td>
+            <td><a href='accountDetail.do?id=<c:out value="${account.id}"/>'>Detail</a></td>
         </tr>
-        <tr>
-            <td colspan="2">
-                <input type="submit" value="Save Changes"/>
-            </td>
-        </tr>
-    </table>
-</form:form>
+    </c:forEach>
+</table>
+</c:if>
 
 </body>
 </html>
\ No newline at end of file

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionService.java	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionService.java	2010-01-21 14:09:55 UTC (rev 99750)
@@ -1,15 +1,12 @@
 package org.jboss.snowdrop.samples.sportsclub.ejb;
 
-import javax.ejb.Local;
-import javax.ejb.TransactionAttribute;
-import java.util.Collection;
-import java.util.List;
-
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.BillingType;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Membership;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Person;
 
+import javax.ejb.Local;
+import java.util.List;
+
 /**
  * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
  */
@@ -24,6 +21,8 @@
 
    Account createAccount(Person person, String membershipCode, BillingType billingType);
 
+   Account findAccountById(Long id);
+
    void closeAccount(Account account);
 
    void updateAccount(Account currentAccount);

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java	2010-01-21 14:06:10 UTC (rev 99749)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java	2010-01-21 14:09:55 UTC (rev 99750)
@@ -70,6 +70,11 @@
       return account;
    }
 
+   public Account findAccountById(Long id)
+   {
+      return accountRepository.findById(id);
+   }
+
    public List<String> getMembershipTypes()
    {
       return membershipRepository.findAllMembershipCodes();




More information about the jboss-cvs-commits mailing list