2011. 12. 11. 23:01 Programming/Spring
스프링 참고할만한 소스들....
package org.springframework.samples.mvc.ajax.account;
import java.math.BigDecimal;
import java.util.Date;
import java.util.concurrent.atomic.AtomicLong;
import javax.validation.constraints.Future;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.springframework.core.style.ToStringCreator;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.NumberFormat;
import org.springframework.format.annotation.NumberFormat.Style;
public class Account {
private Long id;
@NotNull
@Size(min = 1, max = 25)
private String name;
@NotNull
@NumberFormat(style = Style.CURRENCY)
private BigDecimal balance = new BigDecimal("1000");
@NotNull
@NumberFormat(style = Style.PERCENT)
private BigDecimal equityAllocation = new BigDecimal(".60");
@DateTimeFormat(style = "S-")
@Future
private Date renewalDate = new Date(new Date().getTime() + 31536000000L);
public Long getId() {
return id;
}
void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getBalance() {
return balance;
}
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
public BigDecimal getEquityAllocation() {
return equityAllocation;
}
public void setEquityAllocation(BigDecimal equityAllocation) {
this.equityAllocation = equityAllocation;
}
public Date getRenewalDate() {
return renewalDate;
}
public void setRenewalDate(Date renewalDate) {
this.renewalDate = renewalDate;
}
Long assignId() {
this.id = idSequence.incrementAndGet();
return id;
}
private static final AtomicLong idSequence = new AtomicLong();
public String toString() {
return new ToStringCreator(this).append("id", id).append("name", name)
.append("balance", balance).append("equityAllocation",
equityAllocation).append("renewalDate", renewalDate)
.toString();
}
}
package org.springframework.samples.mvc.basic.account;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping(value="/account")
public class AccountController {
private Map<Long, Account> accounts = new ConcurrentHashMap<Long, Account>();
@RequestMapping(method=RequestMethod.GET)
public String getCreateForm(Model model) {
model.addAttribute(new Account());
return "account/createForm";
}
@RequestMapping(method=RequestMethod.POST)
public String create(@Valid Account account, BindingResult result) {
if (result.hasErrors()) {
return "account/createForm";
}
this.accounts.put(account.assignId(), account);
return "redirect:/account/" + account.getId();
}
@RequestMapping(value="{id}", method=RequestMethod.GET)
public String getView(@PathVariable Long id, Model model) {
Account account = this.accounts.get(id);
if (account == null) {
throw new ResourceNotFoundException(id);
}
model.addAttribute(account);
return "account/view";
}
}
package org.springframework.samples.mvc.basic.account;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value=HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
private Long resourceId;
public ResourceNotFoundException(Long resourceId) {
this.resourceId = resourceId;
}
public Long getResourceId() {
return resourceId;
}
}
'Programming > Spring' 카테고리의 다른 글
스프링 MVC 예제 링크 및 간단 정리.. (0) | 2011.11.19 |
---|