我正在尝试清理用jsp servlet和javascript,jquery编写的应用程序。目前在jsp中,有很多javascripts写的。我试图将所有这些javascripts移动到一个单独的js文件。在jsp。
<%
String firstName= "";
if (sampleBean.getName() != null) {
firstName = sampleBean.getName();
}
%>
<script type="text/javascript">
window.onload=loadVal;
function loadVal() {
document.getElementById('business_name').value = "<%=firstName%>";
}
</script>
我需要将此loadVal()移动到另一个js文件。那我怎么能传递这个“&lt;%= firstName%&gt;”这是从bean中获取的吗?
答案 0 :(得分:0)
试试这个,这个函数基本上添加了要在window.onload上调用的函数;
您还可以使用它在onload上添加任意数量的函数。即使你可以将startUp函数移动到外部js,你的loadVal函数也可以在外部js中移动
<%
String firstName= "";
if (sampleBean.getName() != null) {
firstName = sampleBean.getName();
}
%>
<script type="text/javascript">
var firstName = <%= firstName %>;
function startUp(func)
{
if(window.onload)
{
var ref = window.onload;
window.onload = function(){
ref();
func();
};
}
else
{
window.onload = func;
}
}
startUp(function(){ loadVal(firstName);});
</script>
答案 1 :(得分:0)
简单的答案是,您需要重构脚本以使其更加模块化和可配置。
您可以使用the module pattern in JavaScript来改善这一点。
我-module.js 强>
var MyModule;
(function(MyModule){
var fName = MyModule.firstName || "";
function loadVal() {
document.getElementById('business_name').value = firstName;
}
window.onload=loadVal;
}(MyModule || (MyModule = {})));
现在在您的主页面中,您可以执行此类操作。这种方法的好处在于您不必污染全球范围。
<head>
<!-- Other declarations -->
<script type="text/javascript">
var MyModule;
(function(MyModule){
MyModule.firstName = <%= firstName %>;
}(MyModule || (MyModule = {})));
</script>
<script type="text/javascript" src="http://www.domain.com/scripts/my-module.js">
</script>
</head>
答案 2 :(得分:-1)
<%
String firstName= "";
if (sampleBean.getName() != null) {
firstName = sampleBean.getName();
}
%>
<script type="text/javascript">
var firstName = <%= firstName %>; // assigning java variable to javascript variable
</script>
在jsp的开头写下上面的代码,并将所有js移到一个单独的文件中。
<script type="text/javascript">
window.onload=loadVal;
function loadVal() {
document.getElementById('business_name').value = firstName;
}
</script>
现在您需要确保在此代码之后包含该js文件:
<script type="text/javascript">
var firstName = <%= firstName %>;
</script>