【问题标题】:Message Prompt Using JSP and Servlet Java使用 JSP 和 Servlet Java 的消息提示
【发布时间】:2013-07-06 02:50:05
【问题描述】:

我正在尝试在登录时使用 Javascript 和 JSP 实现警报提示,但我看不到成功。到目前为止,我所拥有的只是一条错误消息,我想将其作为提示。请帮忙。这就是我所拥有的:

Servlet 端:

String userValidate = logindao.authenticateUser(loginbean);
        if(userValidate.equals("SUCCESS")){
            request.setAttribute("userName", userName);
            request.getRequestDispatcher("/Home.jsp").forward(request, response);
        }else{
            request.setAttribute("errMessage", userValidate);
            request.getRequestDispatcher("/Login.jsp").forward(request, response);
        }

我的 JSP 端:

<td><%=(request.getAttribute("errMessage") == null)
                                    ? ""
                                    : request.getAttribute("errMessage")%></td>

我的 DAO:

public class LoginDao {
    public String authenticateUser(LoginBean loginbean){
        String userName = loginbean.getUserName();
        String password = loginbean.getPassword();

        Connection conn = null;
        String userNameDB = "";
        String passwordDB = "";
        DBConnection db = new DBConnection();
        try{
            conn = db.getDbConnection();
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery("SELECT USER_NAME, P_WORD, WORK_CLASS FROM USER_LOGIN "
                    + "where USER_NAME = '" + userName + "'");

            while(rs.next()){
                userNameDB = rs.getString("USER_NAME");
                passwordDB = rs.getString("P_WORD");
            }
            if(userName.equalsIgnoreCase(userNameDB)&& password.equalsIgnoreCase(passwordDB)){
                return "SUCCESS";
            }
            if(userName.equals("") || password.equals("")){
                return "Username or Password is blank";
            }
        }catch(Exception asd){
            System.out.println(asd);
        }
        return "invalid user credentials";
    }
}

如果证书有误,我得到的只是页面上打印的错误消息。我怎样才能将其作为提示?

【问题讨论】:

    标签: java javascript jsp servlets prompt


    【解决方案1】:

    在您的 JSP 中添加以下内容

    <c:if test="${not empty errMessage}">
        <script>alert("${errMessage}");</script>
    </c:if>
    

    我已使用 EL,因为在 JSP 中使用 scriptlet 已被弃用。 ${attr} 语法只是从 pagerequestsession中提取名为 attr 的属性的值作为测试> 或 应用程序 按此顺序排列。

    编辑:(调试为)

    <p>errMessage is: '<%= request.getAttribute("errMessage") %>'</p>
    <c:if test="${not empty errMessage}">
        <script>alert("${errMessage}");</script>
    </c:if>
    <% request.setAttribute("errMessage", "forced error message"); %>
    <c:if test="${not empty errMessage}">
        <script>alert("${errMessage}");</script>
    </c:if>
    

    【讨论】:

    • 每次页面加载时都会出现空白提示。你知道为什么会这样吗?
    • @Stanley 我打错了,没有正确关闭我的 。如果这不能解决您的问题“查看 > 源代码”并检查生成的 HTML 代码是什么。
    • 当页面加载时,我正在页面上打印errMessage is: 'null' 和空白提示。
    • @Stanley。我相信你应该关闭这个问题,因为这回答了你关于如何获得你正在寻找的 Javascript 提示的原始查询。后续问题似乎与您的 servlet 无法为您的属性设置值(现在为 null)有关,并且可以在您的后续问题中更好地解决 here
    • 好的,然后我将关闭问题,然后请您帮忙。
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多