2014-09-05 97 views
1

是否有一种使用AJAX将HTML从servlet发送到JSP的简单方法。将HTML从servlet动态发送到JSP

我已经想通了如何使AJAX使用Servlet动态工作,但现在我想基于文本的输入按一个窗体上的按钮,生成HTML。

是否有可能,如果是这样,怎么样,只是HTML片段发送到现有的HTML页面?

例,

我在那里你可以输入你的年龄,并根据时代的文本有不同的大小/颜色的基本形式。因此,例如,您将25岁作为您的年龄发送到servlet,然后它将一段HTML如此<p STYLE="font-size: age;">发送回页面。

回答

0

通过Ajax调用,你可以得到的输出结果是一个字符串,HTML或将被解析和结果可以显示在JSP/HTML的JSON对象。所以你肯定可以通过ajax调用将servlet中的html代码段发送给jsp。

例如可以使用此approach--

1. Take a string variable in your servlet. 
2. Put appropriate html string as per your conditions in this string variable 
3. send this string as a response from servlet like: 

response.setCharacterEncoding("UTF-8"); 

response.getWriter().write("your string variable here"); 

4. In your ajax call do like this: 

    success : function(dataString) { 
       document.getElementById("containerId").innerHTML=dataString; 
    }, 

其中数据筒是要在其中显示的HTML输出html元素的id(如格或跨度)。

+0

在我的情况下,代码如下所示: http://pastebin.com/Zde3T10Q 我刚添加了innerHTML来测试,但没有奏效,我认为我应该以不同的方式处理它,我不知道如何 – 2014-09-05 09:27:52

+0

你是否试图在你的函数中保持一个警告,无论你是否在responseText中获得价值? – 2014-09-05 09:29:48

+0

我从servlet获取值回来,我都试过,只返回纯文本并显示,这对我的作品,但什么样的价值要发送我不能innerHTML的做任何事情,我可能会做一些错误,虽然 – 2014-09-05 09:39:18

0

最简单的方法,无需客户端的JavaScript库,将一个HTML表单指向一个iframe,就像

<iframe name="myIframe"...> 

<form target="myIframe"...> 

,并提交必要的形式多次。由servlet返回的HTML会将其自身加载到iframe元素中。

如果你喜欢AJAX和客户端的JavaScript库,你可以找到非常简单的程序化的方式在jQuery和类似的库来做到这一点。

0

基本上,您的servlet可以生成任何类型的内容,例如JSON,HTML等 然后,您将该内容发送回客户端并将其集成到页面中。 如何完成取决于内容的类型。

例子:

您发出AJX请求(例如,通过使用jQuery的Ajax功能)和你的servlet生成纯HTML。当您的JavaScript接收到该代码时,您只需替换相关的部分,例如通过替换某些定义的元素的内容。

如果使用JSON代替,你的servlet可以发送数据而不是只,例如基于年龄的字体大小,如你的例子。然后,您将使用JavaScript访问该JSON数据并执行相关操作,例如通过改变段落的风格。