@ModelAttribute减少约定俗成,写得更大白话一点,入门的时候容易懂。
This commit is contained in:
+7
-4
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+5
-6
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-6
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,9 +20,6 @@
|
||||
</bean>
|
||||
</mvc:message-converters>
|
||||
</mvc:annotation-driven>
|
||||
|
||||
<!-- 将无法mapping到Controller的path交给default servlet handler处理 -->
|
||||
<mvc:default-servlet-handler/>
|
||||
|
||||
<!-- 定义JSP文件的位置 -->
|
||||
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
||||
@@ -30,6 +27,10 @@
|
||||
<property name="suffix" value=".jsp"/>
|
||||
</bean>
|
||||
|
||||
<!-- 定义无Controller的path<->view直接映射 -->
|
||||
|
||||
<!-- 容器默认的DefaultServletHandler处理 所有静态内容与无RequestMapping处理的URL-->
|
||||
<mvc:default-servlet-handler/>
|
||||
|
||||
<!-- 定义无需Controller的url<->view直接映射 -->
|
||||
<mvc:view-controller path="/" view-name="redirect:/task"/>
|
||||
</beans>
|
||||
|
||||
+5
-6
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</mvc:message-converters>
|
||||
</mvc:annotation-driven>
|
||||
|
||||
<!-- 根据后缀名决定Content-Type及相应的View -->
|
||||
<!-- 根据URL后缀自动判定Content-Type及相应的View -->
|
||||
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
|
||||
<property name="mediaTypes" >
|
||||
<value>
|
||||
@@ -37,10 +37,10 @@
|
||||
<property name="suffix" value=".jsp"/>
|
||||
</bean>
|
||||
|
||||
<!-- 将无法mapping到Controller的path交给default servlet handler处理 -->
|
||||
<!-- 容器默认的DefaultServletHandler处理 所有静态内容与无RequestMapping处理的URL-->
|
||||
<mvc:default-servlet-handler/>
|
||||
|
||||
<!-- 定义无Controller的path<->view直接映射 -->
|
||||
<!-- 定义无需Controller的url<->view直接映射 -->
|
||||
<mvc:view-controller path="/" view-name="index"/>
|
||||
<mvc:view-controller path="/web/mashup-client" view-name="/web/mashup-client"/>
|
||||
|
||||
|
||||
@@ -14,23 +14,23 @@
|
||||
<body>
|
||||
<h1>Web Service 演示</h1>
|
||||
|
||||
<h2>1. 传统SOAP Web Service演示</h2>
|
||||
<h2>1. 传统的SOAP Web Service演示</h2>
|
||||
<ul>
|
||||
<li>服务端是基于CXF的JAX-WS演示, 见CXF自动生成的<a href="${ctx}/cxf/">wsdl文件列表</a></li>
|
||||
<li>客户端见Functional Test用例, 或SoapUI工具.</li>
|
||||
</ul>
|
||||
|
||||
<h2>2. 基于JAX-RS实现的Restful演示</h2>
|
||||
<h2>2. 基于JAX-RS标准的Restful演示</h2>
|
||||
<ul>
|
||||
<li>服务端是基于CXF的JAX-WS演示, CXF自动生成的<a href="${ctx}/cxf/">wadl文件列表</a></li>
|
||||
<li>演示地址:<a href="${ctx}/cxf/rest/user/1.xml">/cxf/rest/user/1.xml</a> 与 <a href="${ctx}/cxf/rest/user/1.json">/cxf/rest/user/1.json</a></li>
|
||||
<li>演示地址:<a href="${ctx}/cxf/jaxrs/user/1.xml">/cxf/jaxrs/user/1.xml</a> 与 <a href="${ctx}/cxf/jaxrs/user/1.json">/cxf/jaxrs/user/1.json</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>3. SpringMVC Restful Service高级演示</h2>
|
||||
服务端:
|
||||
<ul>
|
||||
<li>集成Shiro进行HttpBasic的认证 </li>
|
||||
<li>XML与JSON两种格式的序列化</li>
|
||||
<li>XML与JSON两种格式的序列化,根据Url自动判定Content-Type</li>
|
||||
<li>演示地址:<a href="${ctx}/api/v1/user/1.xml">/api/v1/user/1.xml</a> 与 <a href="${ctx}/api/v1/user/1.json">/api/v1/user/1.json</a> (用浏览器访问时需要认证admin/admin)</li>
|
||||
</ul>
|
||||
客户端:
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<head>
|
||||
<title>跨域名Mashup演示</title>
|
||||
<script type="text/javascript">
|
||||
//相对于本地文件来说,服务器地址就是跨域的地址.
|
||||
var remoteUrl = "http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}";
|
||||
|
||||
//使用JQuery ajax jsonp方式跨域名访问内容
|
||||
|
||||
Reference in New Issue
Block a user