2

私はJavaの初心者です。

サーブレットで属性をセッションに設定し、2 つの異なる jsps でアクセスしようとしています。しかし、2 番目の jsp でヌル ポインター例外が発生します。

私のサーブレット:

    HttpSession session = request.getSession(true);

    if (null == session.getAttribute("username")) {
        response.sendRedirect("login.jsp");
    } else {
        EdsStudentForm eds = (EdsStudentForm) form;
        try {
            List<UserApplication> userList = uaDAO.searchUser(eds);
            if (!userList.isEmpty()) {
                request.getSession().setAttribute("userList", userList);
                action_forward = SRCHSUCCESS;
            } else {
                action_forward = SRCHFAILURE;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

JPS I : sTbl.jsp を使用しても問題がない最初の JSP

     <html:form method="post">
        <table border="1" width="400" align="center" class ="sample">

            <tr>
                <td class ="divheader">Student Code</td>
                <td class ="divheader">First Name</td>
                <td class ="divheader">Last Name</td>
            </tr>
            <c:set var ="sStudt" value="${userList}" scope="session" />
                <c:forEach items="${userList}" var ="uList">
                    <tr> 
                        <td class ="divheader"><a href="searchSuccess.jsp?"><c:out value="${uList.studentCode}"></c:out></a></td>
                        <td class="divheader"><c:out value="${uList.firstName}"></c:out></td>
                        <td class ="divheader"><c:out value="${uList.lastName}"></c:out></td>
                        </tr> 
                </c:forEach>
      </html:form>

私の2番目のJSP:searchSuccess.jsp

    <html:form method="post">
        <p class ="sample">Personal Information</p>
        <table class ="table1">

            <c:if test="${not empty sStudt}">
                <c:forEach var="sList" items="${sessionScope.sStudt}">
            <tr>
                <td>Student Code:</td>
                <td><c:out value="${sList.studentCode}"/><td>
            </tr>
           <tr>
                <td>Title:</td>
                <td><c:out value="${sList.title}"/></td>
                <td>First Name:</td>
                <td><c:out value="${sList.firstName}"/></td>
                <td>Last Name:</td>
                <td><c:out value="${sList.lastName}"/></td>
            </tr> 
            <tr>
                <td>Street Number:</td>
                <td><c:out value="${sList.streetNumber}"/></td>
                <td>Street Name:</td>
                <td><c:out value="${sList.streetName}"/></td>
                <td>#Suite/Apt.:</td>
                <td><c:out value="${sList.suite}"/></td>
            </tr>
            etc..etc...

java.lang.NullPointerException が発生しました

私が間違っていることを教えてください。

前もって感謝します。

4

1 に答える 1

0

以下のように c:if 条件を変更して、変数がセッションで使用可能かどうかを確認してください

<c:if test="${not empty sessionScope.sStudt}">

私はそれがあなたの問題を解決するはずだと思います

于 2012-10-17T07:31:57.773 に答える