如何从jsp / servlet中表数据单元格内的文本框中获取值?

问题描述 投票:1回答:1

[嗨,我正试图从表中元素内部的文本框中获取值。我对每行都有一个编辑按钮,该行应转到servlet,更新字段,刷新表数据并返回相同的jsp页面。

这是我的桌子

<table border="2">
                <tr>
                    <th>ID</th>
                    <th>Short Desc</th>
                    <th>Long Desc</th>
                    <th>Status</th>

                </tr>
                <c:forEach var="state" items="${stateList}">
                <tr>
                    <td><input type="text" name="editStateId" value="${state.stateId}"/></td>
                    <td><input type="text" name="editShortDesc" value="${state.shortDesc}"/></td>
                    <td><input type="text" name="editLongDesc" value="${state.longDesc}"/></td>
                    <td><input type="text" name="editIsActiveString" value="${state.isActiveString}"/></td>

                    <td>
                    <form action="witc" method="post">
                        <input type="hidden" name="action" value="manageDispoType">
                        <input type="hidden" name="stateId" value="${state.stateId}"/>
                        <input type="hidden" name="manageType" value="stateType">
                            <input type="submit" value="Edit" class="editbuttons"/>
                        </form>    
                    </td>
                </tr>

                </c:forEach>

            </table>

在我的servlet中,我试图从这些文本框中获取值以添加到状态类并更新数据库。我正在使用request.getParameter(),但得到一个空值

这是我的servlet

private String doManageType(HttpServletRequest request, HttpServletResponse response){
        String urlString;
        StateType stateType = new StateType();
        List<StateType> stateList = GetDb.getAllStates();

        //below is the code I'm having trouble with
        String shortDesc = request.getParameter("editShortDesc");
        String longDesc = request.getParameter("editLongDesc");
        String isActive = request.getParameter("editIsActive");

            request.setAttribute("stateList", stateList);

            stateType.setShortDesc(shortDesc);
            stateType.setLongDesc(longDesc);
            stateType.setIsActiveString(isActive);


            UpdateDb.updateState(stateType);
            urlString = "/manageTypes.jsp";       

        return urlString;
    }
javascript java jsp servlets httprequest
1个回答
0
投票

您的代码有两个问题:

A。表单应将字段editStateIdeditShortDesceditLongDesc等括起来,如下所示:

<table border="2">
    <tr>
        <th>ID</th>
        <th>Short Desc</th>
        <th>Long Desc</th>
        <th>Status</th>
    </tr>
    <c:forEach var="state" items="${stateList}">
        <form action="witc" method="post">
            <tr>
                <td><input type="text" name="editStateId" value="${state.stateId}"/></td>
                <td><input type="text" name="editShortDesc" value="${state.shortDesc}"/></td>
                <td><input type="text" name="editLongDesc" value="${state.longDesc}"/></td>
                <td><input type="text" name="editIsActiveString" value="${state.isActiveString}"/></td>
                <td>                
                    <input type="hidden" name="action" value="manageDispoType">
                    <input type="hidden" name="stateId" value="${state.stateId}"/>
                    <input type="hidden" name="manageType" value="stateType">
                    <input type="submit" value="Edit" class="editbuttons"/>                   
                </td>
            </tr>
        </form>  
    </c:forEach>
</table>

B。在您的servlet中,您应该写request.getParameter("editIsActiveString")而不是request.getParameter("editIsActiveString")

© www.soinside.com 2019 - 2024. All rights reserved.