org.apache.jaster.JasperException:无法编译JSP:的类
org.apache.jasper.JasperException: Unable to compile class for JSP:
我正在尝试用javascript调用jsp代码。
错误如下
org.apache.jaster.JasperException:无法编译JSP:的类
An error occurred at line: 16 in the jsp file: /testng_index.jsp
String cannot be resolved
13: var mai=document.getElementById("j");
14: //mai.value = mai.value.toUpperCase();
15: var m=mai.value;
16: <%=String value=document.writeln(m)%>
17: var mo= <%= new PlaneBo().getOwnerId(value)%>;
18: // document.writeln(mo);
19: if(mo==0)
这是代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="com.ams.services.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript" language="javascript">
function emailCheck()
{
var mai=document.getElementById("j");
//mai.value = mai.value.toUpperCase();
var m=mai.value;
<%=String value=document.writeln(m)%>
var mo= <%= new PlaneBo().getOwnerId(value)%>;
// document.writeln(mo);
if(mo==0)
{
// document.writeln(m);
var tab = document.getElementById("t");
var row = tab.insertRow(3);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var inpt= document.createElement("input");
inpt.setAttribute("name","jho");
inpt.setAttribute("type","text");
cell1.innerHTML="Name";
请给我提供这个问题的合适的解决方案。
在我看来,您似乎对Java和JavaScript代码在何时何地执行感到困惑。
当浏览器请求页面时,Java代码和JSP在服务器上运行。服务器对HTML和JavaScript一无所知。就服务器而言,这是您的JSP页面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="com.ams.services.*" %>
TEXT
<%=String value=document.writeln(m)%>
TEXT <%= new PlaneBo().getOwnerId(value)%>
TEXT
服务器并不真正关心标记为TEXT
的部分中的内容;它只是将它们直接发送到浏览器。但它确实关心<%@ ... %>
和<%= ... %>
标签中的内容。
由于服务器不理解document.writeln(m)
,因此出现错误。它不知道任何名为document
的对象,因此无法计算document.writeln(m)
。碰巧在JavaScript中有一个对象document
和一个函数document.writeln
,但这无关紧要。服务器对JavaScript一无所知。
在页面发送到浏览器之前,JavaScript代码不会执行。您还没有显示函数的调用时间:可能是在更改了输入字段的值或单击了按钮之后。JavaScript在浏览器中运行,而不是在服务器上运行,因此它不能直接调用服务器上的Java代码。
如果您真的想在调用JavaScript函数的过程中在服务器上执行一些Java代码,则需要使用AJAX调用。有关如何执行此操作的详细信息,请参阅此问题。
相关文章:
- 使用JSP从服务器检索和显示图像
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- AngularJS指令出错-无法读取属性'编译'的未定义
- servlet中的请求对象,而不是从jsp接收参数值
- 使用Javascript生成包含JSP的HTML
- 转义在jsp's脚本
- 如何使用ViewCompiler手动编译DOM的一部分
- 预编译的车把模板使文件大小加倍
- Mocha react本地路由器编译错误
- 显示&作为&在jsp中使用angularjs而不使用ng-bind-html
- 在JSP中运行pdftk
- 使用javascript和jsp将数据插入到融合图中
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在更改名称时,使用ajax jsp在下拉菜单中填充多个文件夹的数据
- 在使用cq:include包含外部JS之前,如何在JSP中包含全局JS变量
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- org.apache.jaster.JasperException:无法编译JSP:的类
- 在包含Jquery UI.js文件之后,无法为JSP编译类
- Java错误:org.apache.jasper.JasperException:无法为JSP编译类