strutsaction属性不能从外部javaScript访问
Struts Action property can't be accessed from external javaScript
我正在做一个使用struts2的项目。在我的Action类我有一个字符串testString
与setter/getter,我可以访问它从我的jsp文件使用${testString}
。没问题。
现在我需要从javascript中访问它,并在我的jsp文件中尝试一个内部脚本,如下所示:
<script >
function testJs() {
alert("${testString}");
}
</script>
我在按钮onclick
中使用了testJs()
方法
<input type="button" value="click me " onclick="testJs()" >
这也工作得很好,意味着当我点击按钮是显示我的字符串(Hello World
)的值,我的动作类在一个警报。
但是问题是当我在外部(test.js)文件中添加此方法并在jsp文件中添加.js文件时,像这样
<script src="resource/js/test.js" ></script>
警告消息不显示字符串值。show ${testString}
方法testJs()
从内部脚本获取和解析字符串值,但不能从外部脚本!!
有什么可能的原因或解释吗?
当您在. JSP文件中编写EL(表达式语言)时,该. JSP文件将由其JSP容器解析,EL将被处理。考虑下面的代码:
anyfile.jsp
<script type="text/javascript">
function testJs() {
alert("${testString}"); // JSP Container will replace '${testString}' with its value
}
</script>
除了EL之外,JSP容器没有处理上述任何代码,因此只替换了${testingString}
。我的意思是,集装箱不知道<script>
或function testJs()
。JSP容器将只处理扩展名为. JSP(或.jspx或其他文件)的文件。在上面的代码中,javascript位于.jsp文件中。
但是另一方面,当你用-
<script src="resource/js/test.js" ></script>
现在前面的代码在test.js
文件中。但是容器怎么会知道呢!您希望JSP容器能够理解这段代码,即理解test.js
是通过使用<script>
元素和src
属性在. JSP文件中添加的javascript。但事实并非如此。
容器实际上不必对这些代码做任何事情。您的代码将发送到客户端没有任何更改。
但是,如果您仍然想使用javascript代码从其他文件中工作,您可以使用以下代码:
anyfile.jsp
<script type="text/javascript">
<jsp:include page="test.jsp" />
</script>
和
test.jsp
<%@page contentType="text/javascript" pageEncoding="UTF-8"%>
function go() {
alert("${testString}");
}
- 从JavaScript访问struts操作中的属性
- 通过 javascript 访问类
- 如何使用JavaScript访问HTML链接内容
- 使用javascript访问php变量
- Javascript-访问对象
- 使用Oauth使用Javascript访问Api
- 通过JavaScript访问需要身份验证的页面
- 如何使用javascript访问sails.js模型中的属性
- 用javascript访问数组中的数组
- 从Symfony2中的javascript访问php变量
- 从Middleman中的Javascript访问config.rb
- 如何从javascript访问表单数据
- 创建一个html表单并使用javascript访问中的python脚本
- 使用JavaScript访问Chrome扩展的剪贴板
- 如何从javascript访问sqlite3数据库表值
- 如何从 JavaScript 访问 Sign Applelet 方法
- JavaScript:访问继承子模块中的“封闭”变量
- 使用 FourSquare API 和 javascript 访问场地提示
- 如何从javascript访问MySql数据库的数据
- 如何通过 javascript 访问参数化函数背后的代码