[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