问题标签 [spring-json]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - spring json写了更多的json然后我想要
我正在使用json spring 视图从我的控制器返回一个简单的 JSON 对象。
问题是它返回的数据比我想要的多。当我所做的只是在控制器中时,它正在返回我的模型内部的验证错误和内容:
如果您在文档中查看此页面的底部,看起来我正在获取 POST 将返回的数据。我不是在发帖,而是通过使用参数直接访问 URL 来进行 GET。
我如何让这个库只返回我模型中的数据?
java - 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它
我有一个 Spring 3 + JPA 2.0 应用程序。在我的@Controller
我需要一个初始化的对象,但我有代理,我需要能够以编程方式初始化它。我需要类似于org.hibernate.Hibernate.initialize(Object)
.
有人可以帮忙吗。该对象用于 AJAX 操作。如果属性是代理,我无法将其作为 JSON 发送
jquery - Jquery getJSON 不适用于 Spring MVC
以下代码无法将请求提交到服务器,我无法弄清楚原因。
这是我的jsp页面的一部分
以及Spring控制器类功能
要求是当用户在“名字”输入框中输入多个字符时,应向服务器提交 AJAx 请求以获取所有名字以这些字母开头的人......但这里的 get 请求从不调用此函数。 .我很确定JQuery请求端出了点问题,但我找不到它是什么..
- - -更新 - - - - -
发现错误..在第 3 行应该是 if( $ ('#firstName').val().length >= 2){ 开头的 $ 丢失了
json - Spring MVC - HttpMediaTypeNotAcceptableException
与 Spring MVC 和 JSON 一起使用时,我不断收到 AJAX 请求的这个 HttpMediaTypeNotAcceptableException 错误。错误的完整堆栈跟踪是..
我做的小谷歌搜索表明请求应该包含类似“accept:application/json”的东西,它确实有..这是来自firebug的请求标头..
现在我完全迷失了这里发生的事情..这里还有什么可能出错来得到这个错误......
spring - Spring JS Ajax 调用 - 枚举数据绑定无法转换但字符串工作
我正在使用 Spring 和 dijit 组件从我的模型中的枚举中呈现选项列表:
当 Javascript 关闭时,来自 btnSelect 的帖子成功地将所选项目转换为服务器端的枚举。也就是说,我的转换服务显示此消息:
但是,当 Javascript 打开并且帖子通过 XHR 时,枚举转换失败。显示此消息的转换服务:
如果他们都使用相同的转换服务,我不明白为什么会发生这种情况。我是否必须设置特殊配置才能使 AJAX 调用绑定到枚举?
java - 将 JSON 视图的 JackSon 与 Spring 2.5 集成
我们使用 Spring 2.5 和 spring-json 来支持 JSON。我们在views.xml中有以下配置
现在,我们了解到 Spring 3.x 在内部使用 JackSon API 来支持 JSON。我的问题是我们如何覆盖 Spring 2.5 的默认实现以使用 JackSon - Spring 3.x 开始的方式。
注意:我们不想迁移我的 Spring 版本,但是,希望 Spring 2.5 使用这个 JackSon API 而不是 Spring-Json
spring - 春季 JSON 合并
我正在通过 AJAX 从表单更新记录。我有一个映射到我的实体的 JSON 对象,我的控制器方法是:
我从文档中预计,如果 v.merge() 没有通过对象的“id”字段找到要合并的现有记录,它将返回 null,在这种情况下,我想将其作为新的 Vendor 对象持久保存。
发生的事情是,尽管我的 JSON 具有与现有记录匹配的“id”字段值,但我总是在浏览器中插入带有更新商品的新记录。
我知道我在这里使用 POST 方法拉双重职责,这不是严格的 RESTful。从理论上讲,这对我来说更简单(当然事实并非如此)。
jquery - 如何实现 JQuery.ajax(dataType:json) 到 spring mvc 2.5
我正在尝试使用 $.ajax() 方法和 Json 作为 dataType 使用 jQuery 库进行 AJAX 调用,当我尝试将其应用于 springmvc 2.5 中的应用程序时,问题就出现了,我根本找不到一个好的教程如何将其应用于 Spring mvc 2.5,但 3.0
干杯
javax.servlet.ServletException:Servlet 调度程序的 Servlet.init() 抛出异常 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) org.apache.coyote.http11.Http11Processor.process( Http11Processor.java:317) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) org.apache。 tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) java.util.concurrent.ThreadPoolExecutor$Worker。runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)
根本原因
org.springframework.beans.factory.BeanCreationException:创建 ServletContext 资源 [/WEB-INF/dispatcher-servlet.xml] 中定义的名称为“viewResolver”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建 ServletContext 资源 [/WEB-INF/views.xml] 中定义的名称为 'jsonView' 的 bean 时出错:bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.springframework.web.servlet.view.json.JsonView]:构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) org.
根本原因
org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/views.xml] 中定义名称为“jsonView”的 bean 创建错误:bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.springframework.web.servlet.view.json.JsonView]:构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。 createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。
根本原因
org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.web.servlet.view.json.JsonView]:构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115) org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy. java:61) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans。 factory.support.AbstractAutowireCapableBeanFactory。
根本原因
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.web.servlet.view.json.filter.SimplePropertyFilter.setUpBeanUtils(SimplePropertyFilter.java:31) org.springframework.web.servlet.view.json .filter.SimplePropertyFilter.(SimplePropertyFilter.java:27) org.springframework.web.servlet.view.json.JsonView.(JsonView.java:25) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl。 newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.springframework.beans.BeanUtils.instantiateClass(BeanUtils. java:100) org.springframework.beans.factory.support。SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Native方法)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) org.springframework。beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:261) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) org.springframework .beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) org.springframework.context.support。AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) org.springframework.web.servlet.view.XmlViewResolver.initFactory(XmlViewResolver.java:138) org.springframework.web.servlet.view.XmlViewResolver.initApplicationContext(XmlViewResolver.java:89) org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119) org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:69) org.springframework.context.support.ApplicationObjectSupport.setApplicationContext( ApplicationObjectSupport.java:73) org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:70) org.springframework.beans.factory.support。AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1331) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java473) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Native Method) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 380)org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)组织。springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) org.springframework.beans.factory.support.AbstractBeanFactory。 getBean(AbstractBeanFactory.java:185) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) org. springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) org.springframework.web.servlet。FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:402) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:316) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:282) org.springframework。 web.servlet.HttpServletBean.init(HttpServletBean.java:126) javax.servlet.GenericServlet.init(GenericServlet.java:160) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) org.apache。 catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) org.apache.coyote.http11。Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint. java:311) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.爪哇:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)
ajax - Spring JSON 在 Spring 框架从 3.0.2 升级到 3.2.0 时会出现问题
我正在使用 Spring 框架版本 3.0.2 和 Hibernate (NetBeans 6.9.1) 处理 Web 应用程序。后来我知道有一个错误导致上传多个文件时出现问题,正如我之前的一个问题中提到的那样。
我已经完成了获得解决方案的努力,但未能成功。因此,我将 Spring 版本升级到3.2.0。
在较早的版本 (3.0.2) 中,AJAX 在Jackson 1.9.8(其下载页面)中运行良好,但在较新的版本 (3.2.0) 中,一切正常,但 AJAX 调用在 JavaScript 代码中的任何地方都会提示错误。
有一种场景,当在国家选择框中选择一个国家时,从 Spring 控制器中连同 DAO 一起检索相应的状态列表。在 Spring 控制器中映射到 URL 的方法如下,
在国家选择框中选择国家时调用该方法。该getStateSelectBox()
方法在 DAO 类之一中定义如下,
该foreach
循环只是为了演示,它显示了所有状态及其 id,这些状态对应于countryId
AJAX 请求提供的但List
不返回给 JSP。
用于发送此 AJAX 请求的 JavaScript 代码会发出错误警报。JSON映射似乎存在一些问题。同样的事情也适用于早期版本的 Spring 框架 (3.0.2)。我不确定为什么这会导致更高版本的 Spring 3.2.0 出现问题。Spring 3.2.0 版有什么我可能会丢失的吗?
如果您需要查看 JavaScript 代码,实现此目的的完整 JavaScript 代码如下所示。
可以肯定的是,Jackson 库位于类路径中,我在服务器端没有收到任何错误或异常。AJAX 请求成功,它通过 Spring 进入 DAO,并List<Object[]>
从数据库中检索类型列表,但它不是 JSON 对 JSP 的响应(可以/应该映射到 JavaScript 数组)。据推测,JSON 映射似乎缺少某些东西,但早期版本的 Spring 并非如此。
编辑:
我尝试List<Object[]>
在 3.0.2 和 3.2.0 这两个框架中进行解析,例如
该文件temp.json
包含以下字符串。
在这两种情况下(使用两个框架)。因此,在这两种情况下,JSON 响应似乎应该是相同的。
该temp.json
文件也可以按如下方式反序列化。
它工作正常,foreach
循环遍历List
of type List<Object[]>
。因此,问题可能是由 Spring 框架本身引起的。还需要什么,我不确定。为什么杰克逊没有映射它?
json - Spring 中的 AJAX 和 CSRF
我在 HTTP 请求标头和 POST 隐藏字段中发送 CSRF 令牌,以防止类似以下的 CSRF 攻击。
此函数旨在插入由 CKEditor 保存的 CMS 内容,以便通过 JSON 对 Spring 的 POST AJAX 调用插入数据库(单击按钮时)。
if(!request){...}
函数体开头的条件检查只是为了防止重复的 AJAX 调用(可能是不耐烦的用户)。
一旦页面被加载并在 JavaScript 变量中检索,随机生成的令牌值就会存储在隐藏字段中。
然后,以下处理程序设置一个与请求一起发送的标头。
为什么需要标头?单独作为隐藏字段发送的令牌是否不够?由于旧的 Flash Players 是否需要检查标题(仅作为示例)?
使用这种方法,在服务器端,我正在检查标头和隐藏字段的值是否匹配(以及检查会话中该令牌的存在{检查会话中令牌的存在无处虽然提到})。
上述 JavaScript 函数调用的 Spring 控制器类中的方法如下。
其中CKEditorContentsHandler
,该方法的第一个参数是一个简单的 Java 类,它只包含几个属性来满足需求。
还建议将令牌存储在 cookie 中,并将其与发布的数据(隐藏字段)一起发送,并检查发布的数据和 cookie 值是否匹配。如果他们不这样做,那么可能是 CSRF 问题(因为攻击者无法读取或修改受害者浏览器上的 cookie,因为相同的源策略)。
之后,为什么需要标头?实际上,推荐的预防(或至少减轻)CSRF 攻击的方法是什么?
以下答案很好地总结了它。