我有一个Jsp页面,每次打开页面时都会加载警报框。我需要此警报仅在满足特定条件时显示。这是我的JSP。每次页面加载时都会加载一个空警报。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<LINK REL="StyleSheet" HREF="css/style.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<form class ="menuOption" action ="MenuServlet" method ="GET">
<table border="0" class ="menuOption">
<tbody>
<tr>
<td>Enter Menu Option<input type="text" name="menuoption" value="" /><input type="submit" value="GO" name="gomenu" /></td>
</tr>
<tr>
<c: if test="${not empty nulloption}">
<script>alert("${nulloption}");</script>
</c:if>
<c:if test="${not empty invalidMenu}">
<script>alert("${invalidMenu}");</script>
</c:if>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
答案 0 :(得分:1)
尝试此操作以验证invalidMenu
内容。
<tr>
<td><%= request.getAttribute("invalidMenu") %></td>
<c:if test="${not empty invalidMenu}">
<script>alert("${invalidMenu}");</script>
</c:if>
<td></td>
<% request.setAttribute("invalidMenu", "invalid menu name"); %>
<c:if test="${not empty invalidMenu}">
<script>alert("${invalidMenu}");</script>
</c:if>
<td></td>
</tr>
答案 1 :(得分:0)
在这种情况下,您的对话是否提供空警报,或者包含“null”的对话?如果它包含“null”,则更有可能是您的nulloption
和invalidMenu
属性出现问题。你说他们“将包含一个String值或null”。这些人来自哪里?
例如,如果他们从使用String.valueOf(foo)
的方法获取其值,foo
为null
,则会给出包含文本“null”的字符串,而不是比具有null
值的那个,即:
String stringWithValueOfNull = "null";
String nullString = null;
您也可以使用c:out
:
<c:out value="${nulloption}"/>
。如果打印“nullOptions等于:。”则表示您有null
或空字符串。如果它打印“nullOption等于:null。”,你有一个文本值为“null”的字符串&amp;你需要进一步回顾生成这个值的代码。