- 浏览: 391959 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
hylandtecliulei:
现在JSF在国外很火的,我们公司的开发平台就是基于JSF
JSF的各种框架实现(对目前JSF群雄一个了解)(转) -
bcabchappy:
在哪呢?压力挺大的,诶。
flex 三大数据传输格式 json,xml,object相互转换的api -
simple8888:
JSF现在还有吗?
JSF的各种框架实现(对目前JSF群雄一个了解)(转) -
游其是你:
请问channelset写在哪儿啊?最后写个小项目“hello ...
用as实现RemoteObject -
hans.org:
mark it
自定义组件中的元数据标签
1)添加包:
json解析用到的包:核心包json-lib-2.2.3-jdk15,核心包用到的包ezmorph-1.0.6
spring中的视图解析:json-lib-ext-spring-1.0.2,这是官方提供的,也可以自己写个。
2)问题:即使使用了spring字符过滤器,在Controller里设置字符类型,仍然呈现乱码
3)猜测原因:HttpServletResponse被多次包装过程中可能发生字符转换导致。
4)解决:在最后的端点设置编码。
5)经验:在始点和终点设置编码,不理会中间过程怎么处理。同理当我们遇到多样化的字符串处理时,把变花样放在终点。
6)代码:
a.配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean name="/jsonView.htm" class="org.sea.content.web.view.JsonView"/>
<bean id="manageProject" class="org.sea.content.web.view.manageProject">
<property name="sessionForm">
<value>true</value>
</property>
<property name="commandClass">
<value>org.sea.content.model.Project</value>
</property>
<property name="formView">
<value>manageProject</value>
</property>
<property name="successView" value="jsonView"/>
</bean>
b.manageProject.java
public class manageProject extends SimpleFormController { protected final Log logger = LogFactory.getLog(getClass()); protected ModelAndView onSubmit(Object command) throws Exception { Project model =(Project)command; model.setProjectTime(String.valueOf(System.currentTimeMillis())); logger.debug("-------------------------->model"+model.getProjectName()); JSONObject object= JSONObject.fromObject(model); logger.debug("-------------------------->model"+object.toString()); return new ModelAndView(getSuccessView(), "model", object.toString()); } }
c.jsonView.jsp 所有的有关json的返回都是用这个jsp.
<%response.setHeader("Charset","UTF-8");
PrintWriter pw= response.getWriter();
pw.write((String)request.getAttribute("model"));
%>
d.org.sea.content.web.view.JsonView拷贝自json官方的:
package org.sea.content.web.view; /** * Created by IntelliJ IDEA. * User: Administrator * Date: 2009-3-30 * Time: 21:39:23 * To change this template use File | Settings | File Templates. */ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONSerializer; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; import net.sf.json.filters.OrPropertyFilter; import org.springframework.web.servlet.view.AbstractView; /** * A View that renders its model as a JSON object. * * @author Andres Almiray <aalmiray@users.sourceforge.net> */ public class JsonView extends AbstractView { /** Default content type. Overridable as bean property. */ private static final String DEFAULT_JSON_CONTENT_TYPE = "application/json"; private boolean forceTopLevelArray = false; private boolean skipBindingResult = true; /** Json confiiguration */ private JsonConfig jsonConfig = new JsonConfig(); public JsonView() { super(); setContentType( DEFAULT_JSON_CONTENT_TYPE ); } public JsonConfig getJsonConfig(){ return jsonConfig; } public boolean isForceTopLevelArray() { return forceTopLevelArray; } /** * Returns whether the JSONSerializer will ignore or not its internal property * exclusions. */ public boolean isIgnoreDefaultExcludes() { return jsonConfig.isIgnoreDefaultExcludes(); } /** * Returns whether the JSONSerializer will skip or not any BindingResult related keys on the model.<p> * Models in Spring >= 2.5 will cause an exception as they contain a BindingResult that cycles back. */ public boolean isSkipBindingResult() { return skipBindingResult; } /** * Sets the group of properties to be excluded. */ public void setExcludedProperties( String[] excludedProperties ) { jsonConfig.setExcludes( excludedProperties ); } public void setForceTopLevelArray( boolean forceTopLevelArray ) { this.forceTopLevelArray = forceTopLevelArray; } /** * Sets whether the JSONSerializer will ignore or not its internal property * exclusions. */ public void setIgnoreDefaultExcludes( boolean ignoreDefaultExcludes ) { jsonConfig.setIgnoreDefaultExcludes( ignoreDefaultExcludes ); } public void setJsonConfig( JsonConfig jsonConfig ) { this.jsonConfig = jsonConfig != null ? jsonConfig : new JsonConfig(); if( skipBindingResult ){ PropertyFilter jsonPropertyFilter = this.jsonConfig.getJsonPropertyFilter(); if( jsonPropertyFilter == null ) { this.jsonConfig.setJsonPropertyFilter( new BindingResultPropertyFilter() ); }else{ this.jsonConfig.setJsonPropertyFilter( new OrPropertyFilter(new BindingResultPropertyFilter(), jsonPropertyFilter) ); } } } /** * Sets whether the JSONSerializer will skip or not any BindingResult related keys on the model.<p> * Models in Spring >= 2.5 will cause an exception as they contain a BindingResult that cycles back. */ public void setSkipBindingResult( boolean skipBindingResult ) { this.skipBindingResult = skipBindingResult; } /** * Creates a JSON [JSONObject,JSONArray,JSONNUll] from the model values. */ protected JSON createJSON( Map model, HttpServletRequest request, HttpServletResponse response ) { return defaultCreateJSON( model ); } /** * Creates a JSON [JSONObject,JSONArray,JSONNUll] from the model values. */ protected final JSON defaultCreateJSON( Map model ) { if( skipBindingResult && jsonConfig.getJsonPropertyFilter() == null ){ this.jsonConfig.setJsonPropertyFilter( new BindingResultPropertyFilter() ); } return JSONSerializer.toJSON( model, jsonConfig ); } /** * Returns the group of properties to be excluded. */ protected String[] getExcludedProperties() { return jsonConfig.getExcludes(); } protected void renderMergedOutputModel( Map model, HttpServletRequest request, HttpServletResponse response ) throws Exception { response.setContentType( getContentType() ); writeJSON( model, request, response ); } protected void writeJSON( Map model, HttpServletRequest request, HttpServletResponse response ) throws Exception { JSON json = createJSON( model, request, response ); if( forceTopLevelArray ){ json = new JSONArray().element(json); } json.write( response.getWriter() ); } private static class BindingResultPropertyFilter implements PropertyFilter { public boolean apply( Object source, String name, Object value ) { return name.startsWith("org.springframework.validation.BindingResult."); } } }
发表评论
-
近日js使用
2009-09-18 11:39 9851、最强的js日期校验:校验了闰年闰月的日期、时、分、秒的大小 ... -
JavaScript函数this调用规则
2009-06-01 15:06 3531不是我翻译的,但是觉 ... -
jquery插件:SimpleModal
2009-04-02 20:50 7081跨浏览器的对话框插件。插件结构比较清晰!操作很方便!1)使用方 ... -
js的对象特性
2009-03-10 18:05 1125Javascript中的对象是无处不在的,function,b ... -
js 的 delete
2009-03-10 15:39 3860虽然是一个小小的delete操作符,其行为却异常复杂。 ... -
js的闭包和return理解
2009-03-09 18:14 1284闭包的两个特点: 1、作为一个函数变量的一个引用 - 当函数 ... -
js的日期格式化
2009-03-04 16:44 1648function checkDate(txtObject ... -
jquery精华
2009-02-10 11:50 12051、关于页面元素的引用 ... -
SITEMESH-总结自俺们论坛
2008-11-27 10:23 15331、问题:被修饰页面的body区被“干掉”了。。。取而代之的是 ... -
offsetLeft,Left,clientLeft的区别
2008-09-16 14:50 3397js开发富客户端必须要 ... -
js小技巧
2008-09-02 10:21 15311)改变<input type="text ... -
attachEvent绑定函数添加参数
2008-08-28 11:01 1961满世界跑了一圈,最简单的 如下: <html> ... -
onload问题解决
2008-08-14 10:55 1233问题:默认onload会等待文件加载完毕才执行,如果你的页面有 ... -
解除js循环引用带来的内存泄漏危机
2008-08-05 11:58 2366原文:http://javascript.crockford. ... -
携带值小技巧,简化js2
2008-08-04 12:33 1140上次发了个小技巧解决数据分散的导致需要计算时获取数据很麻烦的问 ... -
JS中公共/私有变量和方法 (翻译总结)
2008-07-29 09:22 4460公共/私有变量和方法 通过一个简单的的例子,来展示如何使用Ja ... -
无污染的 JavaScript 对象设计
2008-07-17 09:05 1199论坛里 achun发的贴 : http://www.itey ... -
携带值小技巧,简化js
2008-07-11 10:42 1360问题:在页面上一个循环打印出来的表,点击某一行时取得本行某些列 ... -
js 操作XML,一次性解决(转贴自网络)
2008-06-16 11:43 2620精确掌握相关知识的学习网址 :http://www.w3sc ... -
提高css的可读性(翻译总结)
2008-05-07 10:33 1742当你完成了项目后,非 ...
相关推荐
"Spring-JSON"是关于Spring框架与JSON处理的相关知识点,主要涉及如何在Spring应用程序中集成和使用JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互。Spring框架提供...
【标题】"spring data jpa + spring + json demo"揭示了这个项目是关于使用Spring Data JPA、Spring框架以及JSON处理的一个示例应用。Spring Data JPA是Spring框架的一个模块,它简化了JPA(Java Persistence API)...
在Spring4 MVC的配置中,通常需要在`web.xml`或Spring的配置文件中添加MVC的JSON处理器,比如`Jackson2HttpMessageConverter`,以便让Spring MVC能够自动处理JSON请求和响应。同时,需要在`pom.xml`或构建文件中引入...
本文将深入探讨在Java中如何使用JSON,以及其在实际开发中的应用场景。 首先,Java中处理JSON的主要工具有两个:Jackson和Gson。这两个库提供了API,可以帮助我们轻松地将Java对象转换为JSON字符串,以及将JSON字符...
例如,如果我们不想在JSON中暴露User的密码,可以这样修改User类: ```java public class User { private String username; @JsonIgnore private String password; // getters and setters... } ``` 除了...
4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解来接收和返回 JSON 数据。例如: ```java @RequestMapping(value = "/...
在Spring中,我们通常会使用`Jackson.databind`模块,因为它提供了`ObjectMapper`类,可以方便地将Java对象转换为JSON字符串,反之亦然。为了集成Jackson,首先需要在项目中引入对应的依赖。对于Maven项目,可以在...
Spring MVC还提供了`@JsonView`注解来控制JSON响应中的数据粒度,以及`@JsonProperty`和`@JsonIgnore`来控制哪些字段应包含在JSON中。 **jQuery和JavaScript** jQuery是一个流行的JavaScript库,简化了DOM操作、...
在Spring项目中使用JSON,通常会涉及以下知识点: 1. **Spring MVC与JSON**: Spring MVC提供了一种简单的方法来处理JSON请求和响应。通过使用`@RequestBody`和`@ResponseBody`注解,可以将JSON字符串转换为Java对象...
4. **前端处理**:在JavaScript中使用Ajax(可能通过jQuery或其他库)发送请求,并处理返回的JSON数据,更新DOM元素。 这个项目提供的示例工程应该包含了一个工作流程的完整实例,从Ajax请求到Spring MVC的处理,再...
在这个场景中,我们关注的是Spring如何处理JSON数据以及客户端如何处理JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,因为它的结构清晰且易于阅读和编写。 1. **...
在"mongo集成spring struts2 json velocity"这个项目中,我们将看到如何将这些技术整合到一起,创建一个功能丰富的Web应用程序。 首先,MongoDB的集成意味着项目会利用其NoSQL特性和文档存储的优势。Spring Data ...
标题中的“spring配置JSON拦截器VIEW”指的是在Spring框架中设置JSON数据的处理方式,特别是通过拦截器(Interceptor)来优化视图层(View)的响应。在Web开发中,拦截器是一种常用的机制,用于在请求被实际处理之前...
这些注解可以帮助控制哪些属性应该被包含在JSON中,哪些应该被忽略,以及属性的命名规则等。 例如,假设我们有一个`User`类: ```java public class User { @JsonProperty("id") private Long id; @...
下面,我们将依次讲解Spring Boot的基本概念、JSON文件的使用以及如何在Spring Boot中读取本地JSON文件。 首先,让我们了解一下Spring Boot。Spring Boot是Spring框架的一个扩展,它简化了创建独立的、生产级别的...
在Spring框架中,JSON的使用是极其常见的,尤其在Spring MVC中,它扮演着重要的角色,使得前后端交互变得更加简单。 在Spring MVC中,JSON主要通过以下几种方式进行应用: 1. **ModelAndView到JSON的转换**:在...
在这个"springmvc spring hibernate ajax json"的简单完整DEMO中,我们可以预期以下几个方面的集成和使用: 1. **Spring MVC** 作为前端控制器,负责接收HTTP请求,调度到相应的Controller处理。 2. **Spring** 通过...
Struts2与Spring整合使用json报错解决办法[归纳].pdf
描述中的“json的简单应用”表明我们将探讨JSON的基础用法,以及如何在一个具有增加和删除功能的例子中使用JSON。这通常涉及到动态网页开发,例如使用JavaScript或者jQuery库来实现用户界面的交互,通过解析JSON数据...
在Spring MVC中,我们可以使用Jackson库或者Gson库将Java对象转换为JSON字符串,反之亦然。 2. **Spring MVC中的JSON配置** 在Spring MVC项目中,我们需要引入相应的JSON库,如Jackson的`jackson-databind`依赖。...