【问题标题】:String Variable with struts to javascript带有struts到javascript的字符串变量
【发布时间】:2014-03-30 14:08:43
【问题描述】:

我在将字符串变量传递给创建小程序的 javascript 函数时遇到了一个大问题。

在我的 Java 类中,我通过请求传递变量“端点”

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 ;
}

【问题讨论】:

  • 显示代码如何使用 javascript 创建小程序。
  • 欢迎来到 StackOverflow!您无法从 javascript 读取请求属性。看看这里:stackoverflow.com/questions/15238647/…
  • 谢谢安吉洛。 ¿我可以将参数“endpoint”传递给jsp中包含的html代码,然后从html代码中恢复它吗?
  • @user1853334:如果下面的解决方案有效,请记住接受它

标签: java javascript jsp struts2 httprequest


【解决方案1】:

使用OGNL在JavaScript代码中注入request属性的值:

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

还可以看看OGNL Basics,尤其是页面中的最后一个表格。

【讨论】:

    【解决方案2】:

    您可以使用jstl标签(http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm)并将请求属性放在javascript var上,您必须执行类似的操作:

    在你的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 变量中获得请求属性值,然后您可以在您的 js 代码中使用它。

    但我认为您可能出于各种原因将小程序用于错误目的:

    • 我在 archive 参数上看到太多 jar,请注意,在每个客户端想要运行您的小程序之前,所有这些 jar 都必须由 JVM 插件下载到客户端计算机,在你的情况这可能是太多的时间。另外,如果您想调用一个端点,您可能需要使用 Java 认可的 CA 颁发的公认证书对所有 jar 进行签名。

    • 看起来您希望小程序调用一些远程服务...为什么?如果不是非常必要,为什么不从服务器上做呢?

    希望对您有所帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      相关资源
      最近更新 更多