0

CQ5 ページの JSP にこの単純なコードがありますが、正しく動作させることができません。入力フィールドの 1 つが空で送信されているかどうかを確認したいのですが、常に「空ではない」と出力されます。

<%
if(slingRequest.getParameter("authorMail") == null) {
    %>empty<%
} else {
    %>not empty<%
}
%>

に対して検証を試みましたが"null"、 「空」を出力する条件を取得するものは""あり" "ません。フォームから入力フィールドを完全に削除した場合にのみ機能します。

フロントエンドで jQuery を使用して何かを作成することはできますが、このような単純なことはちょっとばかげていると思います。GETパラメータが実際に空であることを確認する方法を知っている人はいますか?

これは JSP 全体です。

<%@include file="/libs/foundation/global.jsp"%>
<html>
<head>
    <title>Test</title>
</head>

<body>
    <form method="get" action="<%= currentPage.getPath() %>.html">
        <input type="text" name="authorMail" id="authorMail" />
        <input type="submit" />
    </form>

    <%
    if(slingRequest.getParameter("authorMail") == "") {
        %>empty<%
    } else {
        %>not empty<%
    }
%>

___
"<%=slingRequest.getParameter("authorMail")%>"
___
</body>
</html>
4

2 に答える 2

1

==この演算子はオブジェクトの内容ではなくオブジェクト参照を比較するため、を使用して 2 つの文字列を比較することはできません。メソッドを使用equals()して文字列を比較します。

そのため、最初authorEmail != nullにパラメーターが存在するかどうかを確認するために使用する必要があり (フォームを送信した後になります)、次に!authorEmail.isEmpty()文字列が空でないかどうかを確認します。2 番目の方法は と同じ!authorEmail.equals("")です。

StringUtils.isNotEmpty()便利な方法を使用することもできます。

于 2013-09-25T20:14:30.813 に答える