实现JSP页面

简介:

 

为了更简单地实现Ajax交互,本页面使用了另一个JavaScript框架:Prototype.js。通过使用该框架,可以更加简单地访问页面中的DOM节点,包括更好地实现Ajax交互。这样避免去做创建XMLHttpRequest对象、发送异步请求这些烦琐的步骤。

下面是该JSP页面的代码。

程序清单:codes\04\4.6\struts2json\first.jsp

 
  1. <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  4.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head>  
  7.     <title>使用JSON插件</title>  
  8.     <script src="${pageContext.request.contextPath}/prototype-1.6.1.js"   
  9.     type="text/javascript">  
  10.     </script>  
  11.     <script type="text/javascript">  
  12.         function gotClick()  
  13.         {  
  14.             //请求的地址  
  15.             var url = 'JSONExample.action';  
  16.             //将favorite表单域的值转换为请求参数  
  17.             var params = Form.serialize('form1');  
  18.             //创建Ajax.Request对象,对应于发送请求  
  19.             var myAjax = new Ajax.Request(  
  20.             url,  
  21.             {  
  22.                 //请求方式:POST  
  23.                 method:'post',  
  24.                 //请求参数  
  25.                 parameters:params,  
  26.                 //指定回调函数  
  27.                 onComplete: processResponse,  
  28.                 //是否异步发送请求  
  29.                 asynchronous:true 
  30.             });  
  31.         }  
  32.         function processResponse(request)  
  33.         {  
  34.             //使用JSON对象将服务器响应解析成JSON对象  
  35.             var res = request.responseText.evalJSON();  
  36.             //遍历JSON对象的每个属性  
  37.             for(var propName in res)  
  38.             {  
  39.                 $("show").innerHTML += propName + " --> "   
  40.                     + res[propName] + "<br/>";  
  41.             }         
  42.         }     
  43.     </script>  
  44. </head>  
  45. <body>  
  46. <s:form id="form1">  
  47.     <s:textfield name="field1" label="Field 1"/>  
  48.     <s:textfield name="field2" label="Field 2"/>  
  49.     <s:textfield name="field3" label="Field 3"/>  
  50.     <tr><td colspan="2">  
  51.     <input type="button" value="提交" onclick="gotClick();"/>  
  52.     </td></tr>  
  53. </s:form>  
  54. <div id="show">  
  55. </div>  
  56. </body>  
  57. </html>  

在上面的页面中使用了Prototype.jsAjax.Request来完成Ajax交互。为了使用Prototype.js,当然需要在该页面中导入Prototype.js的代码库。

上面的页面代码中直接调用了字符串的evalJSON(),该方法用于将符合JSON格式的字符串解析为一个JSON对象——上面的程序将服务器响应的字符串解析成JSON对象,这个JSON对象完整地保存了Action实例的状态信息。

在浏览器中浏览该页面,如果在上面三个表单域中完成输入,然后单击“提交”按钮,将看到如图4.38所示的页面。

 

 

正如图4.38中所看到的,页面可以取得整个Action实例的状态信息,包括Action实例里的每个属性名,以及对应的属性值。既然我们获得了整个Action的状态信息,就完全获得了Struts 2对该请求的处理结果,最后剩下的事情就是:通过DOM操作把这些处理结果显示出来。关于如何利用DOM动态改变HTML页面内容,请参考疯狂Java体系的《疯狂Ajax讲义》一书。

 


 

本文转自 fkJava李刚 51CTO博客,原文链接:http://blog.51cto.com/javaligang/897447 ,如需转载请自行联系原作者

相关文章
|
13天前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
掌握JSP页面编程:动态生成Web内容
|
22天前
银行营业网点管理系统——修改的页面(updateBreaches.jsp)
银行营业网点管理系统——修改的页面(updateBreaches.jsp)
14 2
|
25天前
新闻发布项目——注册页面(reg.jsp)
新闻发布项目——注册页面(reg.jsp)
13 1
|
26天前
|
Java 数据库连接 mybatis
springboot访问jsp页面变成直接下载?
springboot访问jsp页面变成直接下载?
27 0
|
27天前
|
前端开发 Java
java实现动态验证码源代码——jsp页面
java实现动态验证码源代码——jsp页面
11 0
|
27天前
|
JavaScript 前端开发 Java
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Jsp页面
9 0
|
2月前
|
存储 缓存 Java
JSP页面生命周期详解及优化建议
JSP页面生命周期详解及优化建议
|
22天前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
15 2
|
4月前
|
Java 应用服务中间件 容器
JSP页面请求响应过程中的编码解码
JSP页面请求响应过程中的编码解码
58 0
|
5月前
|
Java
jsp页面中显示word/excel文档方法
jsp页面中显示word/excel文档方法

相关课程

更多