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

Javascript 如何从jsp/servlet中表数据单元内部的文本框中获取值?,javascript,java,jsp,servlets,httprequest,Javascript,Java,Jsp,Servlets,Httprequest,您好,我正在尝试从表中元素内的文本框中获取值。对于每一行,我都有一个编辑按钮,它应该转到servlet,更新字段,刷新表数据,然后返回到同一个jsp页面 这是我的桌子 <table border="2"> <tr> <th>ID</th> <th>Short Desc</th>

您好,我正在尝试从表中元素内的文本框中获取值。对于每一行,我都有一个编辑按钮,它应该转到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;
    }
私有字符串域管理类型(HttpServletRequest请求,HttpServletResponse响应){
字符串URL字符串;
StateType StateType=新StateType();
List stateList=GetDb.getAllState();
//下面是我遇到问题的代码
字符串shortDesc=request.getParameter(“editShortDesc”);
字符串longDesc=request.getParameter(“editLongDesc”);
字符串isActive=request.getParameter(“editiactive”);
setAttribute(“stateList”,stateList);
stateType.setShortDesc(shortDesc);
stateType.setLongDesc(longDesc);
stateType.setisActiviteString(isActive);
UpdateDb.UpdateEstate(stateType);
urlString=“/manageTypes.jsp”;
返回URL字符串;
}

您的代码有两个问题:

A.表单应包含以下字段:
editStateId
editShortDesc
editLongDesc
等:

<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(“editIsActive”)
而不是
request.getParameter(“editIsActive”)