【发布时间】:2013-12-16 13:45:46
【问题描述】:
在以下情况下需要一些帮助:
我已经将一个应用程序设置为 Liferay portlet,并且我正在使用 JSF/Primefaces 来构建我的视图。对于数据建模,我使用的是 Hibernate。
在某个视图中,我加载了一个所谓的“图像注释器”,它使用 Javascript 工具来收集用户输入(图像画布上的注释)。我希望能够将这些信息保存在文件/数据库中,然后在用户再次编辑特定图像时重新使用。
这是我的看法:
<h:head>
<script src="#{facesContext.externalContext.requestContextPath}/js/OpenLayers.js" />
<script src="#{facesContext.externalContext.requestContextPath}/js/image-viewer.js" />
<script src="#{facesContext.externalContext.requestContextPath}/js/xml2js/xml2json.js" />
<script src="#{facesContext.externalContext.requestContextPath}/js/xml2js/xml2json.min.js" />
...
</head>
...
<p:fieldset legend="Viewer">
<p:outputPanel layout="block" styleClass="imageEditorImagePanel" />
</p:fieldset>
....
所以图像和相关的 jscript 工具(OpenLayers)被加载到 imageEditorPanel 占位符中。
The javascript code (image-viewer.js) gathers user input in a json (GEOJson) object, and this object i would like to pass to a back bean controller when Save button (jscript) is selected:
...
//define save button
var save = new OpenLayers.Control.Button({
title: 'Save', text: 'Save',
trigger: function(){
var GEOJSON_PARSER = new OpenLayers.Format.GeoJSON();
var vectorLayerAsJson = GEOJSON_PARSER.write(vlayer.features);
...
所以我想将“vectorLayerAsJson”对象传递给 java 控制器(backbean)...
我正在尝试实现一个 ajax 调用,例如:
jQuery.ajax({
type: 'POST',
url: 'imageannotations',
contentType: 'application/json',
data: vectorLayerAsJson,
success : function(data) { alert("success")}
});
任何人都可以帮助我如何提出这个 ajax 请求以及我将如何实现我的控制器类吗?
【问题讨论】:
标签: ajax json jsf jsf-2 primefaces