结合了JSP servlet和Javascript
Combining JSP servlets and Javascript
我已经使用ASP.NET工作了几年,现在正在使用JSP、Struts和Java进行一个项目,所以我对此还很陌生。
我在JavaScript函数中有一个for循环,看起来像这样:
<% int count=0; %>
for(i = 0; i < arrayCount; i++){
jsArray[i] = <%= myBeanArrayList.get(count) %>;
alert("i = " + i + "count = " + count);
<% count++; %>
}
即使使用<%,计数变量也不会递增count=count+1%>。我不明白为什么这段代码在循环中不能按我想要的方式执行。有人对我如何增加JSP Bean的计数有什么建议吗?
这是因为你在混合东西。
- 循环在
javascript
中,而变量count
不存在(因为它是java) - 您只在
<% count++ %>
中增加了一次计数
因此,如果您更改为在java中使用循环,则计数可以正常工作。例如:
<% for( int i = 0; i < ???; i++ ) { %>
alert('<%= i %>');
<% } %>
但最好将javascript与JSP分离。这对曼丹来说可能很痛苦
我有点同意b1naryj,但您可以尝试在jsp中进行循环,只需用javascript编写数组赋值,比如:
<%
for(i = 0; i < arrayCount; i++){
%>jsArray[<%i%>] = <%= myBeanArrayList.get(i) %>;
<%}%>
这是丑陋的,尽管。。。
任何人都不应该在JSP中使用scriptlet代码。这是一个90年代末的成语,人们发现它丑陋、脆弱、难以维护。Model-2 MVC已经席卷了整个领域。
您应该集中精力在服务器端做一些事情。如果必须编写JSP,请使用JSTL。
我认为目前的最佳实践是使用HTML、CSS和JavaScript。使用HTTPGET/POST或AJAX调用从服务器端的服务获取数据。
您只是在客户端上循环,而不是在服务器上循环。服务器代码只执行一次。因此,对于JavaScript循环的每一次迭代,都使用相同的值myBeanArrayList.get(0)
。查看源代码以查看生成的HTML代码,这可能有助于澄清问题。
编辑:相反,使用服务器端代码来构建JavaScript数组文字。我真的不知道JSP,我的Java也有点生疏,但这不管用吗?
var jsArray = <%= new JSONArray(myBeanArrayList) %>;
相关文章:
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- Servlet仅在单击JavaScript警报消息后重定向
- 如何区分javascript中的servlet响应
- 为什么我得到responseText(通过Ajax从Servlet到javaScript)和额外的字符
- Servlet对浏览器上显示的纯文本Javascript的响应
- 在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
- 从 Servlet 调用 Javascript 函数
- 从JavaScript到servlet的Ajax调用
- 将servlet请求从javascript发送到java给出了“;请求的资源不可用”;
- 将hashmap从javascript传递到servlet
- 数据库、servlet、json、javascript和highchart饼图
- servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
- javaScript初学者:将数据从java脚本发送到servlet
- 如何在jsp中的javascript函数中从servlet获取json返回
- Java servlet对JavaScript的响应
- 将一个数组从javascript传递到servlet
- 如何在使用servlet处理时使用javascript设置隐藏变量的值
- database query via javascript & servlet
- XML parse Error javascript servlet
- JSP + JavaScript + Servlet意外结果