diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java index a3318ac2..2102f7a6 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/ProfileController.java @@ -40,12 +40,15 @@ public class ProfileController { return "redirect:/"; } - @ModelAttribute("preloadUser") - public User getUser(@RequestParam(value = "id", required = false) Long id) { + /** + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. + */ + @ModelAttribute + public void getUser(@RequestParam(value = "id", required = false) Long id, Model model) { if (id != null) { - return accountService.getUser(id); + model.addAttribute("preloadUser", accountService.getUser(id)); } - return null; } /** diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java index 09b84edb..6faab9ef 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/account/UserAdminController.java @@ -58,14 +58,13 @@ public class UserAdminController { } /** - * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. */ - @ModelAttribute("preloadUser") - public User getUser(@RequestParam(value = "id", required = false) Long id) { + @ModelAttribute + public void getUser(@RequestParam(value = "id", required = false) Long id, Model model) { if (id != null) { - return accountService.getUser(id); + model.addAttribute("preloadUser", accountService.getUser(id)); } - return null; } } diff --git a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java index 84c72594..5121c426 100644 --- a/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java +++ b/examples/quickstart/src/main/java/org/springside/examples/quickstart/web/task/TaskController.java @@ -107,15 +107,14 @@ public class TaskController { } /** - * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出Task对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. */ - @ModelAttribute("preloadTask") - public Task getTask(@RequestParam(value = "id", required = false) Long id) { + @ModelAttribute() + public void getTask(@RequestParam(value = "id", required = false) Long id, Model model) { if (id != null) { - return taskService.getTask(id); + model.addAttribute("preloadTask", taskService.getTask(id)); } - return null; } /** diff --git a/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml b/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml index db507f23..3c0a73fc 100644 --- a/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml +++ b/examples/quickstart/src/main/webapp/WEB-INF/spring-mvc.xml @@ -20,9 +20,6 @@ - - - @@ -30,6 +27,10 @@ - + + + + + diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java b/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java index 8081042f..31ab0649 100644 --- a/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java +++ b/examples/showcase/src/main/java/org/springside/examples/showcase/web/UserController.java @@ -99,15 +99,14 @@ public class UserController { } /** - * 使用@ModelAttribute, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 - * 因为仅update()方法的form中有id属性,因此本方法在该方法中执行. + * 所有RequestMapping方法调用前的Model准备方法, 实现Struts2 Preparable二次部分绑定的效果,先根据form的id从数据库查出User对象,再把Form提交的内容绑定到该对象上。 + * 因为仅update()方法的form中有id属性,因此仅在update时实际执行. */ - @ModelAttribute("preloadUser") - public User getUser(@RequestParam(value = "id", required = false) Long id) { + @ModelAttribute + public void getUser(@RequestParam(value = "id", required = false) Long id, Model model) { if (id != null) { - return accountService.getUser(id); + model.addAttribute("preloadUser", accountService.getUser(id)); } - return null; } /** diff --git a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml index d3aa5a0b..91415250 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml +++ b/examples/showcase/src/main/webapp/WEB-INF/spring-mvc.xml @@ -21,7 +21,7 @@ - + @@ -37,10 +37,10 @@ - + - + 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 dbbe6656..3a417884 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 @@ -14,23 +14,23 @@

Web Service 演示

-

1. 传统SOAP Web Service演示

+

1. 传统的SOAP Web Service演示

  • 服务端是基于CXF的JAX-WS演示, 见CXF自动生成的wsdl文件列表
  • 客户端见Functional Test用例, 或SoapUI工具.
-

2. 基于JAX-RS实现的Restful演示

+

2. 基于JAX-RS标准的Restful演示

3. SpringMVC Restful Service高级演示

服务端:
  • 集成Shiro进行HttpBasic的认证
  • -
  • XML与JSON两种格式的序列化
  • +
  • XML与JSON两种格式的序列化,根据Url自动判定Content-Type
  • 演示地址:/api/v1/user/1.xml 与 /api/v1/user/1.json (用浏览器访问时需要认证admin/admin)
客户端: diff --git a/examples/showcase/src/main/webapp/WEB-INF/views/web/mashup-client.jsp b/examples/showcase/src/main/webapp/WEB-INF/views/web/mashup-client.jsp index 6792f1b9..50648da5 100644 --- a/examples/showcase/src/main/webapp/WEB-INF/views/web/mashup-client.jsp +++ b/examples/showcase/src/main/webapp/WEB-INF/views/web/mashup-client.jsp @@ -6,6 +6,7 @@ 跨域名Mashup演示