比较 JSP 中的字符串给出了非常奇怪的错误,没有说明是什么原因
Comparing strings in JSP gives really weird error not specyfying what can e the cause
我正在比较 IF 块中的两个字符串,两个字符串都不为空,但显示了一个非常奇怪的错误。即使相同的代码仅使用 servlet 也能正常工作。但是当我 运行 这个代码在 JSP 时它给出了错误。我已经检查过值是否为空,但输出正是在表单中输入的内容。我的代码是这样
<%
String sender = (String) request.getAttribute("sender");
System.out.println(request.getParameter("data") + " " + request.getParameter("sender"));
String process = "process";
if (sender.equals(process)) {
String itemName = request.getParameter("data");
%>
<%="No Item with name: " + itemName + " Found"%>
<%
}
%>
这是显示的错误。
Some Error: An exception occurred processing [/error.jsp] at line [31] 28: String sender = (String) request.getAttribute("sender"); 29: System.out.println(request.getParameter("data") + " " + request.getParameter("sender")); 30: String process = "process"; 31: if (sender.equals(process)) { 32: 33: String itemName = request.getParameter("data"); 34: %> Stacktrace: org.apache.jasper.JasperException: An exception occurred processing [/error.jsp] at line [31] 28: String sender = (String) request.getAttribute("sender"); 29: System.out.println(request.getParameter("data") + " " + request.getParameter("sender")); 30: String process = "process"; 31: if (sender.equals(process)) { 32: 33: String itemName = request.getParameter("data"); 34: %> Stacktrace: [Ljava.lang.StackTraceElement;@6fb251a5
以下是我的完整页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<title>No Data</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
<meta name="theme-color" content="#fafafa">
</head>
<body>
<section id="google-form" class="section google-form">
<div class="account_create-text center ">
<h4>Oops No data found. </h4>
</div>
<br>
<span class="username_curr-email blue ce block spacer-10">!
<%
String sender = (String) request.getAttribute("sender");
System.out.println(request.getParameter("data") + " " + request.getParameter("sender"));
String process = "process";
if (sender.equals(process)) {
String itemName = request.getParameter("data");
%>
<%="No Item with name: " + itemName + " Found"%>
<%
}
%>
</span>
<span class="spacer-10 block"></span>
<span class="spacer-10 block"></span>
<span class="spacer-10 block"></span>
<br>
<br>
<br>
<div class="bb-30 spacer-10">
<a href="Task1.html" style="text-decoration: none;" class="button-elevated ">
Go back
</a>
</div>
<br>
<br>
</section>
</body>
</html>
找到答案了。使用错误的方法。
request.getParameter()
应该用过
我正在比较 IF 块中的两个字符串,两个字符串都不为空,但显示了一个非常奇怪的错误。即使相同的代码仅使用 servlet 也能正常工作。但是当我 运行 这个代码在 JSP 时它给出了错误。我已经检查过值是否为空,但输出正是在表单中输入的内容。我的代码是这样
<%
String sender = (String) request.getAttribute("sender");
System.out.println(request.getParameter("data") + " " + request.getParameter("sender"));
String process = "process";
if (sender.equals(process)) {
String itemName = request.getParameter("data");
%>
<%="No Item with name: " + itemName + " Found"%>
<%
}
%>
这是显示的错误。
Some Error: An exception occurred processing [/error.jsp] at line [31] 28: String sender = (String) request.getAttribute("sender"); 29: System.out.println(request.getParameter("data") + " " + request.getParameter("sender")); 30: String process = "process"; 31: if (sender.equals(process)) { 32: 33: String itemName = request.getParameter("data"); 34: %> Stacktrace: org.apache.jasper.JasperException: An exception occurred processing [/error.jsp] at line [31] 28: String sender = (String) request.getAttribute("sender"); 29: System.out.println(request.getParameter("data") + " " + request.getParameter("sender")); 30: String process = "process"; 31: if (sender.equals(process)) { 32: 33: String itemName = request.getParameter("data"); 34: %> Stacktrace: [Ljava.lang.StackTraceElement;@6fb251a5
以下是我的完整页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<title>No Data</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
<meta name="theme-color" content="#fafafa">
</head>
<body>
<section id="google-form" class="section google-form">
<div class="account_create-text center ">
<h4>Oops No data found. </h4>
</div>
<br>
<span class="username_curr-email blue ce block spacer-10">!
<%
String sender = (String) request.getAttribute("sender");
System.out.println(request.getParameter("data") + " " + request.getParameter("sender"));
String process = "process";
if (sender.equals(process)) {
String itemName = request.getParameter("data");
%>
<%="No Item with name: " + itemName + " Found"%>
<%
}
%>
</span>
<span class="spacer-10 block"></span>
<span class="spacer-10 block"></span>
<span class="spacer-10 block"></span>
<br>
<br>
<br>
<div class="bb-30 spacer-10">
<a href="Task1.html" style="text-decoration: none;" class="button-elevated ">
Go back
</a>
</div>
<br>
<br>
</section>
</body>
</html>
找到答案了。使用错误的方法。
request.getParameter()
应该用过