我正在开发一个遗留项目,我在下面看到了一段代码。 我知道在scriptlet中使用脚本是一种不好的做法。 对此,我心里很少有困惑。
<% if (refLinkTerm != null) { %>
<script Language="javascript">
ShowBookReference('<%=sub2ndNavMenu%>', '<%=refLinkTerm%>', <%=String.valueOf(searchType)%>, <%=String.valueOf(codeType)%>)
</script>
<%}%>
请分享您的想法。
答案 0 :(得分:2)
使用Spring MVC等MVC框架。在这些框架中,您将使用要显示的页面的值填充Java对象(或对象图),然后页面将使用这些值填充占位符。
答案 1 :(得分:2)
就JSP而言,通常使用scriptlets
为JS赋值。
但正如您所提到的,它在页面加载之前运行,因此最好在window.onload上运行该函数。
<script type="text/javascript">
window.onload = function() {
ShowBookReference('<%=sub2ndNavMenu%>', '<%=refLinkTerm%>', <%=String.valueOf(searchType)%>, <%=String.valueOf(codeType)%>)
}
</script>
如果你在ShowBookReference
函数中引用了一些DOM元素,它可能不可用,所以在页面加载时运行它。
否则,您可以使用像JSF这样的UI框架,它为您提供了将Java值轻松绑定到UI的标记。