如何将这个简单的scriptlet转换为JSTL?

时间:2015-07-08 20:35:08

标签: java jsp jstl

我有以下我正在尝试转换为JSTL

的scriptlet
<%
String req = request.getParameter("loginfailed");    
if(req != null)
{
    if(req.equals("true"))
    {%>     
    <h4 id="loginerrormessage">Invalid email address or password.</h4>          
    <%}
}
%>

这个scriptlet运行得很好,但我现在正尝试将它转换为JSTL,我是新手。这是我使用JSTL重建逻辑的最佳尝试。

<c:set var="req" value="${request.getParameter(\"loginfailed\")}"/>
<c:if test="${ req!=null }">
    <c:if test="${ req.equals(\"true\") }">
        <h4 id="loginerrormessage">Invalid email address or password.</h4>
    </c:if>
</c:if>

当我用上面写的JSTL替换scriptlet时,没有任何崩溃,但我不再看到“无效的电子邮件地址或密码”。什么时候我会使用scriptlet看到它。我不确定我在这里做错了什么。

这是范围问题吗?我认为c:set的默认页面范围很好。它是否与我在JSTL中使用转义引号的事实有关?

1 个答案:

答案 0 :(得分:0)

只需使用

    <c:if test="${ param.loginfailed eq 'true' }">
        <h4 id="loginerrormessage">Invalid email address or password.</h4>
    </c:if>

这里param是隐式JSP对象,它允许您访问请求参数。