2005年08月24日

下面2个方法是用来取appModule的.
protected SdscAppModule getSdscService(DataActionContext ctx) {
return (SdscAppModule) getApplicationModule(DATACONTROLNAME, ctx);
}

protected ApplicationModule getApplicationModule(String dataControlName, DataActionContext ctx)
{
DCDataControl dc = ctx.getBindingContext().findDataControl(dataControlName);
if ((dc != null) && dc instanceof DCJboDataControl) {
return (ApplicationModule) dc.getDataProvider();
}
return null;
}

/**
* Returns true if the string is either null or empty.
*
* @param s The string to evaluate
* @return True if the string is either null or empty.
*/
protected boolean isNullOrEmpty(String s) {
return (s == null) || s.equals("");
}

// 下面3个方法是用来取和设置页面binding的属性的值.
protected Object getBindingValue(String bindingName, DataActionContext ctx) {
JUCtrlValueBinding ctrlBinding = findControlBinding(bindingName, ctx);
return (ctrlBinding != null) ? ctrlBinding.getInputValue() : null;
}

protected void setBindingValue(String bindingName, Object value,
DataActionContext ctx) {
JUCtrlValueBinding ctrlBinding = findControlBinding(bindingName, ctx);
if (ctrlBinding != null) {
ctrlBinding.setInputValue(value);
}
}

protected JUCtrlValueBinding findControlBinding(String bindingName,
DataActionContext ctx) {
if (bindingName != null) {
DCBindingContainer bc = ctx.getBindingContainer();
if (bc != null) {
DCControlBinding ctrlBinding = bc.findCtrlBinding(bindingName);
if (ctrlBinding instanceof JUCtrlValueBinding) {
return (JUCtrlValueBinding) ctrlBinding;
}
}
}
return null;
}

一,最简单的就是同一个网页里的表单的数据传递。

举个实例,一个网页上有两个表单,每个表单里一个文本框,一个按钮。点按钮互相对操作对方的文本框的值。我们举的例子是把一个文本框付给另一个文本框。具体的HTML代码如下:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>

<form name="form1" method="post" action="">
<input type="text" name="textfield">
<input type="button" name="Submit" value="1———&gt;2" onClick="ok()">
</form>

<form name="form2" method="post" action="">
<input type="text" name="textfield2">
<input type="button" name="Submit" value="2—–&gt;1" onClick="ok1()">
</form>

</body>
</html>

以上为HTMl的代码,大家可能注意到了onclik的代码了,有两个函数,接下来就是JAVASCRIPT的代码了:<script language="JavaScript">
function ok()
{
document.form2.textfield2.value=document.form1.textfield.value;
}
function ok1()
{
document.form1.textfield.value=document.form2.textfield2.value;
}
</script>

二,第二种是两个窗口之间的表单的文本框之间数据传递。其实这个可以在原来的基础上进行一些扩展就可以了。关于如何创建弹出窗口,窗体里的表单的代码, 在这里就不多说了,现在在这里说一下如何操作父窗口的表单里的文本框的数据。具体代码如下:

<script language="JavaScript">
function ok()
{
opener.document.form2.textfield2.value=document.form1.textfield.value
}
</script>

三,第三种就是框架网页之间的表单的文本框之间数据传递.
注意的地方是框架的写法:

<frameset cols="505,505">
<frame src="test.htm" name="leftr" id="leftr">//定义框架的名称
<frame src="test2.htm" id="right" name="right">
</frameset>
<noframes><body>

</body></noframes>
具体的实现代码如下:
<script language="JavaScript">
function ok()
{
parent.leftr.document.form2.textfield2.value=document.form1.textfield.value
}
</script>
这三种窗口之间的文本框数值互相操作的简单方法就实现了,其它需要注意的就是他们之间的关系。

JavaScript是用于HTML环境的开发语言,提供了能够响应Web页面事件的脚本,可以完全访问浏览器窗口的各个方面,善于合并HTML、Java Applet小程序、插入件、服务器方程序和其他Web组件,形成完全集成的Web应用程序。而Java是功能强大的著名开发语言,能够支持Web应用程序的开发,用于开发高级Web对象,并提供实现嵌入Web页面的可执行内容,具有更强的编程功能,可以作为JavaScript功能的良好补充,只不过这些功能被限制在有限的浏览器窗口区中。
Java与JavaScript可以互相补充,以开发功能更完美的Web应用程序。本文归纳了笔者编程中曾使用过的,涉及到有关JavaScript与Java、Java Applet小程序之间互访的问题的一些方法,仅供参考。
一、从JavaScript中访问Java方法
在HTML脚本中可以用JavaScript直接调用Java中的方法,只需要在调用语句前用“java.lang.”加以表示即可。具体语句用法如下例所示:
java.Lang.System.Out.println(“Hello!”)
但此种方法只适用于Netscape Navigator,一般不提倡在Web应用程序中使用。
二、从JavaScript中访问Java Applet小程序中的方法和变量
通过JavaScript提供的Applet对象,JavaScript代码可以访问Java的变量和方法,具体步骤和用法示例如下。需要注意的是,JavaScript提供的applet对象具有name属性,而没有方法和事件处理器。
步骤:
1) 将要访问的Java Applet小程序的方法和变量声明为Public,且必须在Public类中声明;
2) Java Applet小程序要先装入才能访问,尽管applet对象没有定义onLoad事件,但可以在HTML文档的〈body〉标志中,指定使用Window对象的onLoad事件处理器;
3) Java Applet小程序可以用JavaScript的applet对象来访问。
示例:
“mytest.htm”
//通过调用accessApplet()装入小程序