2014-02-27 53 views
2

我有一个很大的问题传递一个字符串变量到一个JavaScript函数来创建一个小程序。字符串变量带支架到javascript

在我的Java类我传递变量“端点” throught请求

ActionContext.getActionContext().getRequest().setAttribute("endpoint",endpoint); 

但我无法收回它在JSP页面中。我已经尝试了几个html和struts元素,但我无法在js函数中获取它。我的js函数(包含在jsp中)用于恢复变量的代码是:

var endpoint = document.getElementById('endpoint'); 

希望你能帮我一把。非常感谢你提前。

编辑:js函数的代码是:

function createApplet(){ 
var content = '<APPLET id="applet" '+ 
     'code="com.usr.local.AppletFiles.class" '+   'archive="applet/wsdl4j.jar,applet/xercesImpl.jar,applet/log4j.jar,applet/commons-logging.jar,applet/axis-ant.jar,applet/axis-schema.jar,applet/commons-discovery.jar,applet/jaxrpc.jar,applet/axis.jar,applet/saaj.jar,applet/serializer.jar,applet/xalan.jar,applet/xml-apis.jar,applet/JarApplet.jar">'+ 
     ' width="0" height="0" mayscript="true" >'; 

    var tableApplet = document.getElementById('tableApplet'); 

    var endpoint = document.getElementById('endpoint'); 
    alert('Endpoint: '+ endpoint); 

    var param= ''; 

    for(i=0;i<tableApplet .rows.length;i++){ 

    content += '<PARAM NAME="'+tableApplet .rows[i].cells[0].innerHTML+'" VALUE="'+tableApplet .rows[i].cells[1].innerHTML+'">'; 

    param+= tableApplet .rows[i].cells[0].innerHTML+'#'; 

    } 

content += '<param name="parametros" value="'+nombreParametros+'">'; 

content += '<param name="endpoint" value="'+endpoint+'">'; 

content +='&lt;/APPLET&gt;'; 

alert('content ' + content); 

return content ; 
} 
+0

显示你如何使用JavaScript创建applet代码。 –

+0

欢迎来到StackOverflow!您无法从JavaScript读取请求属性。看看这里:http://stackoverflow.com/questions/15238647/passing-a-java-variable-to-a-javascript-function –

+0

谢谢安杰洛。 ¿我可以将参数“端点”传递给包含在jsp中的html代码,然后从html代码中恢复它? – Darkcloud

回答

0

您可以使用JSTL标记(http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm),并把请求属性上的JavaScript变种,你必须做类似的东西:

在JSP包括:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

然后在jsp:

<script type="text/javascript"> 

var endpoint = '<c:out value="${pageContext.request.endpoint}"/>'; 

</script> 

当JSP是在服务器评估客户端浏览器之前呈现所以你必须在终点全球JS变量请求attibute值,你可以在你的js代码中使用它。

但是我认为这是可能的,你正在使用的小程序错误的宗旨,为各种原因:

  • 我看到存档参数太多罐子,采取帐户之前,每个客户要运行你的applet所有这些jar都必须由JVM插件下载到客户端机器上,在你的情况下这可能是太多时间。也可能如果你想调用一个端点,你需要用一个由java认可的CA发布的公认证书来签署所有的jar。

  • 看起来你想让那个applet调用一些远程服务......为什么?如果这不是非常必要,你为什么不从服务器上做?

希望这有助于,

2

使用OGNL注入请求属性的JavaScript代码值:

var endpoint = '<s:property value="%{#request.endpoint}" />'; 

OGNL Basics也看一看,特别是页面中的最后一个表格。