diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/SimpleTeamDTO.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/SimpleTeamDTO.java deleted file mode 100644 index a60cb106..00000000 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/SimpleTeamDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.springside.examples.showcase.webservice.rest; - -import org.apache.commons.lang3.builder.ToStringBuilder; - -public class SimpleTeamDTO { - - private String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } -} diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java index 03d95d99..829f1d40 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserDTO.java @@ -11,7 +11,7 @@ public class UserDTO { private String loginName; private String name; private String email; - private SimpleTeamDTO team; + private Long teamId; public Long getId() { return id; @@ -45,12 +45,12 @@ public class UserDTO { email = value; } - public SimpleTeamDTO getTeam() { - return team; + public Long getTeamId() { + return teamId; } - public void setTeam(SimpleTeamDTO team) { - this.team = team; + public void setTeamId(Long teamId) { + this.teamId = teamId; } /** diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java index e6eb5a72..b100acf2 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/webservice/rest/UserRestController.java @@ -19,16 +19,22 @@ public class UserRestController { @RequestMapping(value = "/{id}.xml", method = RequestMethod.GET, produces = MediaType.APPLICATION_XML_VALUE) @ResponseBody - public UserDTO getAs(@PathVariable("id") Long id) { + public UserDTO getAsXml(@PathVariable("id") Long id) { User user = accountService.getUser(id); - return BeanMapper.map(user, UserDTO.class); - + return bindDTO(user); } @RequestMapping(value = "/{id}.json", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody - public UserDTO listasJson(@PathVariable("id") Long id) { + public UserDTO getAsJson(@PathVariable("id") Long id) { User user = accountService.getUser(id); - return BeanMapper.map(user, UserDTO.class); + return bindDTO(user); + } + + private UserDTO bindDTO(User user) { + UserDTO dto = BeanMapper.map(user, UserDTO.class); + //补充Dozer不能自动绑定的属性 + dto.setTeamId(user.getTeam().getId()); + return dto; } } diff --git a/examples/showcase/src/main/resources/security/applicationContext-shiro.xml b/examples/showcase/src/main/resources/security/applicationContext-shiro.xml index daf26d9a..cd99e08b 100644 --- a/examples/showcase/src/main/resources/security/applicationContext-shiro.xml +++ b/examples/showcase/src/main/resources/security/applicationContext-shiro.xml @@ -26,7 +26,7 @@ /login = authc /logout = logout /account/** = user - /rest/users = authcBasic + /api/** = authcBasic diff --git a/examples/showcase/src/main/webapp/WEB-INF/views/story/webservice.jsp b/examples/showcase/src/main/webapp/WEB-INF/views/story/webservice.jsp index 6a9adfcf..c2914032 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/views/story/webservice.jsp +++ b/examples/showcase/src/main/webapp/WEB-INF/views/story/webservice.jsp @@ -12,12 +12,19 @@
-