Struts秘籍之第2段:第3.7式: 动态产生JavaScript

问题

你想要根据从应用模型获得的数据动态产生JavaScript。

动作要领

使用Struts 标签在你想要包含在HTML中的JavaScript 代码中渲染数据:

< script  language ="JavaScript" >
    
function showMessage(  ) {
        alert( 
"Hello, <bean:write name='myForm' property='name'/>!" );
    }

</ script >

 

动作变化

上述方案产生了一个JavaScript 函数,弹出一个消息框,消息文本为"Hello, name!" name的值是使用bean:write标签产生的。此方案展示了使用Struts 标签创建JavaScript 和它们创建HTML一样的容易。

JSTL也可以按这种方式使用。

虽然这种方法很明显,但是很奇怪很多人都在问这个问题。通常问题还可能是:"我如何才能从Struts中调用HTML中的JavaScript 函数?" 技术上讲,你并不能从Struts调用一个HTML页面中的JavaScript 函数。Struts 和JSP 技术都运行在服务器端。相反,JavaScript确是在客户端的浏览器中处理的。但是,通过这里所述的动态产生JS的能力,基本上还是相当于所需的这个行为。

这个方法的一个重要基础是JSP的转换过程。JSP 页面由JSP 声明,标准JSP 标签 (比如jsp:useBean), 定制JSP 标签(比如Struts 和JSTP 标签), 运行是表达式,以及脚本小程序(scriptlets)组成。除此之外的其他东西都是模板文本(template text)。模板文本可以是任何不会被JSP转换处理的内容。人们通常会认为模板文本就是HTML 标记,但是它其实是JavaScript 或者其他非JSP 处理的文本。JSP 翻译器并不关心模板文本采用何种形式。因此,你可以象在HTML元素中产生文本一样容易地在JavaScript 函数中产生文本。

如果你使用JSP 来产生良构的(well-formed)XHTML, 那么动态JavaScript 模版文本必须使用jsp:text元素和CDATA section的方式结合来指定。具体信息参见Hans Bergsten的ONJava 文章:http://www.onjava.com/pub/a/onjava/2004/04/21/JSP2part3.html

这里的例子仅仅列出了很简单的使用场景。如果要访问的模型数据需要使用复杂的JavaScript数据结构,比如,数组,你可以使用迭代标签,比如logic:iterate和c:forEach来组装这些结构。

相关动作

下一动3.8或会使用迭代标签来产生客户端的JavaScript 数组。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值