`
jie66989
  • 浏览: 250740 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring mvc传值(json格式)

阅读更多

java端:
spring-servlet.xml中的部分配置信息:
	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 
	-->
	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
		<property name="mediaTypes">  
		  <map>  
		    <entry key="html" value="text/html"/>  
		    <entry key="xml" value="application/xml"/>
		    <entry key="json" value="application/json"/>  
		  </map>  
		</property>
		<property name="viewResolvers">  
		  <list>
		    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
		      <property name="prefix" value="/jsp/"/>
		      <property name="suffix" value=".jsp"/>
		    </bean>
		  </list>
		</property>
		<property name="defaultViews">
			<list>
				<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
			</list>
		</property>
	</bean>
	<bean  
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="messageConverters">  
            <list> 
                <bean  
                    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
                    <property name="supportedMediaTypes">  
                        <list>  
                            <value>application/json;charset=UTF-8</value>  
                        </list>  
                    </property>  
                </bean>  
            </list>  
        </property>  
    </bean>  


请求对应的Java类:
@Controller
@Scope("prototype")
@RequestMapping("/user_service")
public class UserService {
	@RequestMapping(value="/create_user",method=RequestMethod.POST)
	@ResponseBody
	public String springMVCTestUser(@RequestBody User user) {
		// spring mvc中获取request对象的方法
		HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder
			      .getRequestAttributes()).getRequest();
		return "";
	}
}


flex端:
package com.util
{
	import com.util.Constants;
	
	import flash.net.URLVariables;

	import mx.rpc.events.ResultEvent	
	import mx.rpc.http.mxml.HTTPService;

	public class HttpServiceWrapper
	{

		public static const HTTP_METHOD_POST:String="POST";
		public static const HTTP_METHOD_GET:String="GET";

		private var _method:String;
		private var _url:String;

		public function HttpServiceWrapper(url:String, method:String)
		{
			this._url=url;
			this._method=method;
		}

		public function execute(resultHandler:Function, faultHandler:Function, params:Object=null, isLogin:Boolean=false):void
		{
				var httpService:HTTPService=new HTTPService;
				httpService.url=Constants.SERVER + this._url;
				httpService.method=this._method;
				httpService.useProxy=false;
				httpService.requestTimeout = 10;
				httpService.headers["JSESSIONID"]=Constants.SESSIONID;
				if(isLogin)
				{
					httpService.contentType="application/json";
				}
				httpService.contentType=contentType;
				httpService.addEventListener("result", resultHandler);
				httpService.addEventListener("fault",faultHandler);
				httpService.send(params);
		}
	}

		private function resultHandler(event:ResultEvent):void
		{
			// 这里可以获取请求成功后返回的sessionid
			var jsessionId:String = event.currentTarget.headers["JSESSIONID"];
		}
}



javascript端:
            $.ajax({
                type:'post',
                url: 'user/addOrUpdate',
                contentType : 'application/json',
                dataType:'json',
                data : strUser,  
                success:function(data){
                    $('#win').window('close');  // close window  
                    $('#userTable').datagrid('reload');  
                    $.messager.alert('提示',data.message,'info');
                }
            });

            // 或者这个都可以,这个我没有测,只是参考这个写的上面flex的代码
            $.post("user/addOrUpdate",strUser,function(data){
                $('#win').window('close');  // close window  
                $('#userTable').datagrid('reload');  
                $.messager.alert('提示',data.message,'info');
            },'json');


-------------------------------
flex和java交互其实可以用blazeDS传递对象太方便了在java端配置好blazsDS在flex端在对应Java对象的bean上添加
[Bindable]
[RemoteClass(alias="com.entity.User")]
就可以了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics