Ajax 为什么</html>;在我的最小接缝页面的末尾插入标记?

Ajax 为什么</html>;在我的最小接缝页面的末尾插入标记?,ajax,json,jsf,jquery-plugins,seam,Ajax,Json,Jsf,Jquery Plugins,Seam,两天来我一直在寻找问题的答案,所以我想是时候问了。希望在JSF和Seam方面更明智的人(这不需要花太多时间,我对这两种技术都还不熟悉)能够启发我 我有一个Seam应用程序,它需要一个下拉列表,但用户也可以在其中输入。这将允许用户创建条目以及预定义条目。我正在尝试使用jQuery插件创建这个组合框。它似乎是我所需要的一个很好的候选人。为了创建这个组合框效果,我只需要指定一个div和一个返回JSON数据的页面 add-codes.html deptString.xhtml-全部 <ui:com

两天来我一直在寻找问题的答案,所以我想是时候问了。希望在JSF和Seam方面更明智的人(这不需要花太多时间,我对这两种技术都还不熟悉)能够启发我

我有一个Seam应用程序,它需要一个下拉列表,但用户也可以在其中输入。这将允许用户创建条目以及预定义条目。我正在尝试使用jQuery插件创建这个组合框。它似乎是我所需要的一个很好的候选人。为了创建这个组合框效果,我只需要指定一个div和一个返回JSON数据的页面

add-codes.html

deptString.xhtml-全部

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:s="http://jboss.com/products/seam/taglib">

<h:outputText value="#{actComboBoxAction.getDepartmentJSON()}" />

</ui:composition>
问题就出现在这一点上。seam正确调用seam方法并成功返回JSONObject。但组合框无法正常工作,因为字符串末尾附加了“”。 例如,我从页面的“查看源”复制并粘贴了以下内容:

{"results":[{"id":"1","name":"Dept1"},{"id":"2","name":"Dept2"},{"id":"3","name":"Dept3"}]}</html>
{“results”:[{“id”:“1”,“name”:“Dept1”},{“id”:“2”,“name”:“Dept2”},{“id”:“3”,“name”:“Dept3”}]}
是什么添加了这个无关的标签,有没有办法摆脱它? 我创建了一个包含正确JSON的文本文件,并将该文件调用到.flexbox()方法中。combobox当时的工作方式与advertisted相同,因此我知道flexbox代码可以工作。 我还尝试从deptString.xhtml文件中删除所有JSF代码,文件中只有一行
{actComboBoxAction.getDepartmentJSON()}
。这导致出现“com.sun.facelets.FaceletException:错误解析/includes/deptString.xhtml:错误跟踪[line:1]prolog中不允许包含内容。”错误

正如我所说,我对JSF和Seam是新手。如果在Seam/JSF应用程序中有一种明显/更好的方法从后端到前端获取简单字符串,我洗耳恭听


提前感谢您的帮助。

如果您的javascript位于facelet(xhtml)文件中,您应该能够执行以下操作

$("#test-string").flexbox('#{actComboBoxAction.getDepartmentJSON()}'); 

提到了一些实现这一点的方法,如果您的javascript位于facelet(xhtml)文件中,那么您应该能够做到这一点

$("#test-string").flexbox('#{actComboBoxAction.getDepartmentJSON()}'); 

提到了实现这一点的一些方法

错误解析/includes/deptString.xhtml:prolog中不允许错误跟踪[line:1]内容。'Error。正在发生,因为表达式周围仍然需要ui:composition标记。虽然它可能无法解决您的问题,但我不确定Seam部分,但我可以看出,您基本上滥用JSF作为web服务的web MVC框架。考虑使用一个真正的WebService API,例如JAX-WS或JAX-RS。如果您的JavaScript是在一个FACLLE(XHTML)文件中,您应该能够做$(“γ测试字符串”)。flexbox('{{ACTCOMBOBOXActudi.GeDetrysJONSER(})});这个链接提到了一些实现这个目标的方法嘿,伙计们,谢谢你们的回答!利用你的建议,我现在有了一些有效的方法,reevesy!我感谢巴卢斯的意见(也感谢里维斯所链接的问题的答案)。我可以理解你关于JSF框架滥用的观点。我想我在SeamRemoting中被迷住了,它允许您从javascript调用Seam方法(因此@WebMethod注释)。我将看一看您提到的框架,看看是否可以轻松实现其中一个框架。prolog中不允许错误解析/includes/deptString.xhtml:Error tracked[line:1]内容。'Error。正在发生,因为表达式周围仍然需要ui:composition标记。虽然它可能无法解决您的问题,但我不确定Seam部分,但我可以看出,您基本上滥用JSF作为web服务的web MVC框架。考虑使用一个真正的WebService API,例如JAX-WS或JAX-RS。如果您的JavaScript是在一个FACLLE(XHTML)文件中,您应该能够做$(“γ测试字符串”)。flexbox('{{ACTCOMBOBOXActudi.GeDetrysJONSER(})});这个链接提到了一些实现这个目标的方法嘿,伙计们,谢谢你们的回答!利用你的建议,我现在有了一些有效的方法,reevesy!我感谢巴卢斯的意见(也感谢里维斯所链接的问题的答案)。我可以理解你关于JSF框架滥用的观点。我想我在SeamRemoting中被迷住了,它允许您从javascript调用Seam方法(因此@WebMethod注释)。我会看看你提到的框架,看看我是否能轻松实现其中的一个。这实际上并不能回答问题。为什么会包括这些信息?我想我太苛刻了,但不管怎样。它解决了那个特定的人的问题,但是为什么html标签是其中的东西呢?这实际上并没有回答这个问题。为什么会包括这些信息?我想我太苛刻了,但不管怎样。它解决了那个特定的人的问题,但为什么html标记是其中的东西呢?
{"results":[{"id":"1","name":"Dept1"},{"id":"2","name":"Dept2"},{"id":"3","name":"Dept3"}]}</html>
$("#test-string").flexbox('#{actComboBoxAction.getDepartmentJSON()}');