Ajax 在两个应用程序JSF之间发送JSON
我想使用JSON和Ajax在两个应用程序之间发送数据。 对于第一个测试,我想单击一个按钮(在xhtml中)并在managedbean中接收数据(在第二个应用程序中) 为此,我创建了: xhtml页面:Ajax 在两个应用程序JSF之间发送JSON,ajax,json,jsf,servlets,xmlhttprequest,Ajax,Json,Jsf,Servlets,Xmlhttprequest,我想使用JSON和Ajax在两个应用程序之间发送数据。 对于第一个测试,我想单击一个按钮(在xhtml中)并在managedbean中接收数据(在第二个应用程序中) 为此,我创建了: xhtml页面: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
<body>
<ui:composition template="/templates/template.xhtml">
<ui:define name="content">
<h:outputScript library="js" name="test.js" />
<h:form>
<h:button onclick="validate();" value="Tester" type="button"/>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>
ManagedBean测试bean:
public class TestBean extends HttpServlet{
private static final long serialVersionUID = 1L;
public TestBean() {
super();
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// PrintWriter out = response.getWriter();
String output = request.getParameter("params");
System.out.println("Servlet : " + output);
}
}
但是,当我单击xhtml页面中的按钮时,我不会在managedBean中执行doGet方法。我试图在这个方法中设置一个断点,但它始终不起作用
为什么?
谢谢。你在混音。他们之间没有任何关系。您看到的TestBean
类本质上是一个servlet,而不是JSF支持bean。通过类上的@ManagedBean
或faces config.xml
中的
将其注册为JSF托管bean,您无法使用它。它必须注册为一个完整的servlet。您可以使用类上的@WebServlet
注释或web.xml
中的
条目进行此操作
假设您的环境支持Servlet 3.0,只需使用@WebServlet
注册它:
@WebServlet("/testservlet")
public class TestServlet extends HttpServlet {
// ...
}
(这里,/testservlet
,是servlet必须侦听的URL模式)
并且,假设/Project1
是上下文路径,将其作为
(如果您首先直接在浏览器的地址栏中输入URL来测试它会更容易)
另见:
TestBean
类本质上是一个servlet,而不是JSF支持bean。通过类上的@ManagedBean
或faces config.xml
中的
将其注册为JSF托管bean,您无法使用它。它必须注册为一个完整的servlet。您可以使用类上的@WebServlet
注释或web.xml
中的
条目进行此操作
假设您的环境支持Servlet 3.0,只需使用@WebServlet
注册它:
@WebServlet("/testservlet")
public class TestServlet extends HttpServlet {
// ...
}
(这里,/testservlet
,是servlet必须侦听的URL模式)
并且,假设/Project1
是上下文路径,将其作为
(如果您首先直接在浏览器的地址栏中输入URL来测试它会更容易)
另见:
doGet()
正在执行的任何操作。顺便说一下,我的回答假设您使用的是Servlet3.0,域名是“example.com”。我可以假设你足够聪明,知道这一切意味着什么吗?如果适用,您应该在真实环境/config/approach中修复/更改它。另请参见第1段中的“servlet”链接,该链接包含更详细的示例和解释。我不使用@WebServlet,而是使用web.xml的配置,当我测试URL时,它显示错误404。显然,该配置或URL是错误的。根据目前提供的稀疏信息很难判断。它应该显示什么?(HTTP状态404对我来说)它应该显示doGet()
正在执行的任何操作。顺便说一下,我的回答假设您使用的是Servlet3.0,域名是“example.com”。我可以假设你足够聪明,知道这一切意味着什么吗?如果适用,您应该在真实环境/config/approach中修复/更改它。另请参见第1段中的“servlet”链接,该链接包含更详细的示例和解释。我不使用@WebServlet,而是使用web.xml的配置,当我测试URL时,它显示错误404。显然,该配置或URL是错误的。根据目前提供的稀疏信息很难判断。