Jquery对话框——基于提交给Spring Controller的json,返回一个视图
Jquery dialog - based on json submitted to Spring Controller that returns a view
到目前为止,我一直使用以下代码作为开发的基础:来自springsource的Ajax简化。
这里是html &jquery和javascript代码:
<c:url var="Controller" value="/ControllerUrl" />
...
var previewDialog = $("<div></div>").dialog({
//all the dialog setttings
});
$(".opener").click(function() {
previewDialog.load("${Controller}",function(data) {
previewDialog.dialog('open');
});
return false;
});
和控制器:
@RequestMapping(value = "/ControllerUrl", method = RequestMethod.GET)
public String previewDialog(Model model) {
MyClass myClass = new MyClass();
myClass.setTitle("SUCCESS");
model.addAttribute(myClass);
return "dialogContent";
}
这几乎都工作,除了在dialogContent.jsp(它确实在我的对话框中打开)"SUCCESS"是而不是打印的:
<div id="divContent">
Title : ${myClass.title} <br>
</div>
我错过了什么/做错了什么?
其次,在这种情况下,向服务器提交json数据的最简单方法是什么?我尝试使用$.ajax()
和$.postJSON()
,但遇到了问题,因为它们的工作方式与$.load()
语句不同。
你可以试试:
在控制器中:
return new ModelAndView("view-name", "myclass", myClass);
在JSP中:
${myClass.title}
问题是这仍然会返回HTML而不是纯文本。
同样,你也可以通过改变你的控制器返回json或xml,如下所示:
@RequestMapping(value = "/ControllerURL", method = RequestMethod.GET, headers="Accept=application/xml, application/json")
public @ResponseBody DealManager homeXmlJson(Locale locale, Model model) {
MyClass myClass = new MyClass();
myClass.setTitle("SUCCESS");
return myClass;
}
然后当你使用$.getJSON
调用它时,它应该返回对象的json表示,你应该能够从中提取title
。
使用REST-Client之类的工具查看将不同的Accept
参数传递给控制器URL时返回的内容。参数为:Accept: text/html
, Accept: application/json
, Accept: application/xml
您还必须配置您的rest上下文。下面是我正在使用的一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
<ref bean="marshallingConverter" />
<!-- <ref bean="atomConverter" /> -->
</list>
</property>
</bean>
<!-- Handle JSON Conversions -->
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>
<!-- Handle XML Conversion -->
<bean id="marshallingConverter"
class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<constructor-arg ref="jaxbMarshaller" />
<property name="supportedMediaTypes" value="application/xml" />
</bean>
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.pack1.app.domain.MyEntity</value>
<value>com.pack1.app.service.MyEntityTwo</value>
</list>
</property>
</bean>
</beans>
相关文章:
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 发送json对象或使用express路由呈现视图
- 使用javascript在MVC视图中解析.net JSON字符串
- JSON范围的更改没有反映在angularjs中的视图中
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 如何在视图中显示json返回的linq列表
- 如何使用不同视图的JSON对象更新angular js中的全局JSON字段
- 将JSON REST请求加载到Kendo ui列表视图中的问题
- onclick在视图中显示重复的json结果
- 如何从JSON数组中获取数据并将其放入列表视图中
- 如何将 json 数据发送到代码点火器视图
- 将 JSON 数据从控制器传递到指令并显示在视图中
- 如何在网页上存储记录 (json) 并仅在“视图”上的记录上显示
- 挖空,映射后从视图模型获取 JSON
- 如何将嵌套的JSON / C#数组加载到视图模型中?使用Knockout,jQuery
- 如何在 android 中的可扩展列表视图组和子项中加载 json 数据
- 如何从另一个视图上编写的 JS 代码重定向到控制器,并将 JSON 对象随之传递
- 客户端通过JS请求JSON并填充Rails视图
- 我的视图模型不会根据 JSON 结果淘汰来增加数字
- Rails中的AJAX GET请求,而不呈现视图/json