【问题标题】:cannot get hidden form field data无法获取隐藏的表单域数据
【发布时间】:2015-12-02 05:58:37
【问题描述】:

我试图获取我保存在我称为noteid 的jsp 表中的隐藏值。我试图在我的控制器中使用 noteid 但我无法访问它,当我使用 int id = Integer.parseInt(request.getParameter("noteid"));我收到一个空错误 500。如何从 jsp 隐藏字段中获取数据以在我的控制器中使用?

这是我的jsp,它有标题链接表,除非我滥用隐藏的表单字段来保存注释ID。应该是对的

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>MyNotes</title>
</head>
<body>

<p align="right">Hello, ${sessionScope.CurrentUser}!&nbsp;&nbsp;&nbsp;<a href="Logout">Logout</a></p>
<span>JOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="MyNotes">My Notes</a>&nbsp;|&nbsp;<a href="NewNote.jsp">New</a></span>
<br>
<br>
<br>


<table border=1>

  <tr><th>Titles</th></tr>
<c:forEach items="${entries}" var="entry">
  <tr>
    <td><a href="NoteDetails?id="${entry.getId()}>${entry.title}</a></td>
     <td><input type="hidden"  value="${entry.getId()}" id="noteid" name="noteid"/></td>
  </tr>
</c:forEach>

</table>

<p><a href="NewNote.jsp">New Note</a></p>



</body>
</html>




here the controller for my notedetails.im trying to get the noteid i saved from the hidden form field in my jsp





@WebServlet("/Homework2/NoteDetails")
public class NoteDetails extends HttpServlet {
    private static final long serialVersionUID = 1L;



    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        getServletContext().setAttribute("cs320.hw2.Note", new ArrayList<Notes>());

        Notes note = null;
        try{
            int id = Integer.parseInt(request.getParameter("noteid"));
            ArrayList<Notes> entries = (ArrayList<Notes>) getServletContext().getAttribute("cs320.hw2.Note");
            for (Notes e : entries){
                if (e.getId() == id){
                    note = e;
                    System.out.println(e+"+"+id);
                    break;
                }
            }
        }catch(Exception e){}
        finally{
            if (note == null){
                System.out.println("WRONG");
                return;
            }
        }






}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

}

【问题讨论】:

    标签: java html servlets


    【解决方案1】:

    您不是通过表单提交隐藏字段

    以下只是一个例子

    <form action="hello" >
    <input type="hidden" value="100" name="id"/>
    input type="submit"/>
    

    小服务程序

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    {
    int i=Integer.parseInt(request.getParameter("id"));
    }
    

    【讨论】:

    • 我只是看了我的笔记,我不应该使用隐藏的表单字段,我将如何通过 ${entry.title} id 进入我的控制器?
    • @user3225981 只需使用 request.getParameter("id");
    【解决方案2】:

    我使用了隐藏在 html 中的输入类型

    <form>
    <input type="hidden" name="test" value="test1"/>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多