逻辑错误-JSP和Servlet
我有一个50个问题的列表,并要求用户回答他选择的任何25个问题。为此,我正在使用JSP和Servlet 这是我的密码:逻辑错误-JSP和Servlet,jsp,servlets,Jsp,Servlets,我有一个50个问题的列表,并要求用户回答他选择的任何25个问题。为此,我正在使用JSP和Servlet 这是我的密码: <form action="Servlet1" method="post"> <%List questions = new ArrayList(); // This list has 50 questions for(int i=1; i<questions.size(); i++) { %> Question Number: &l
<form action="Servlet1" method="post">
<%List questions = new ArrayList(); // This list has 50 questions
for(int i=1; i<questions.size(); i++)
{ %>
Question Number: <% out.println(i); %><br><br>
<%=questions.get(i)%><br><br>
Answer:
<input type="hidden" name="question" value="<%=questions.get(i) %>">
<input type="text" name="answer"> <br><br>
<input type="submit" value="submit" name="submit">
<% } %>
但在Servlet中,当我使用request.getParameter(“answer”)代码>当用户回答其他问题时,它仅为最近显示的问题提供答案。它被保存为空白(不是“null”,它被保存为“”-空白),并且该问题也没有相应地保存。但是当用户回答最近的问题时,问题和答案都会被保存
我想这是因为一些逻辑错误…有人能帮我解决吗
我想将问题和答案保存在数据库中,无论用户回答哪个问题。在html中,每个元素都可以通过名称或id进行标识。但它必须是唯一的。
此代码在问题上循环,每次都定义相同的名称,即answer
,用于文本输入。
因此,它不会创建另一个文本,而是覆盖前一个文本。
因此,您必须使用i
或另一种方法使其像
<input type="text" name="answer<%=i>"> <br><br>
您可以在服务器端像
for(int i=1; i<questions.size(); i++)
{
String answer= request.getParameter("answer"+i)
//add logic here
}
for(inti=1;i在html中,每个元素都可以通过名称或id进行标识,但必须是唯一的。
此代码在问题上循环,每次都定义相同的名称,即answer
,用于文本输入。
因此,它不会创建另一个文本,而是覆盖前一个文本。
因此,您必须使用i
或另一种方法使其像
<input type="text" name="answer<%=i>"> <br><br>
您可以在服务器端像
for(int i=1; i<questions.size(); i++)
{
String answer= request.getParameter("answer"+i)
//add logic here
}
for(int i=1;i这是因为您不能在多个输入类型中使用相同的名称。请尝试在您的输入名称后添加一些别名,如下面的shwon:
<input type="text" name="answer_<%=i>"> <br><br>
这是因为您不能对多个输入类型使用相同的名称。请尝试在您的输入名称后添加一些别名,如下面的shwon:
<input type="text" name="answer_<%=i>"> <br><br>
将提交按钮放在循环外,它会将所有字段值发送到您的Servelt将提交按钮放在循环外,它会将所有字段值发送到您的Servelt您需要唯一地命名所有答案
文本元素。如果所有50个Q都在同一页上,还需要为页面保留单个提交
按钮更正将关闭输入
元素。@Aamir:请停止在建议的编辑中将非代码格式化为代码。框架/产品/库名称不是代码。只有代码是代码。您需要唯一地命名所有答案
文本元素。如果所有50个Q都在同一页面上,请为页面保留单个提交
按钮。再多一个更正将关闭input
元素。@Aamir:请停止在建议的编辑中将非代码格式化为代码。框架/产品/库名称不是代码。只有代码是代码。这正在工作,但另一个问题出现了。.当用户输入第四个问题的答案时。.数据库存储前3条记录的空格。.我不想要这些记录空白记录..可能吗..?@JavaLearner1:我想,要回答这个问题,你需要显示你的数据库存储逻辑和Servlet1
code.@JavaLearner1可能会刷新页面!!当你在页面上寻找第四个问题的答案时,前3条记录会回答吗?如果不是,那么你可以在服务器端检查null条件,如果回答null then不允许添加,但这取决于您的要求。@bmt我解决了这个问题,我刚刚编写了另一个代码来删除答案字段为空的所有行。谢谢!您的代码帮助我解决了核心问题这是可行的,但另一个问题出现了。.当用户输入第四个问题的答案时。.数据库为前3个记录存储空格rds..我不想要那些空白记录..有可能吗?@JavaLearner1:我想,要回答这个问题,你需要显示你的db存储逻辑和Servlet1
code.@JavaLearner1可能会刷新页面!!当你在页面上寻找第四个问题的答案时,前三条记录会回答吗?如果没有,那么你要么检查服务器上的空条件如果答案为空,则不允许添加,但这取决于您的要求。@bmt我解决了这个问题,我刚刚编写了另一个代码来删除答案字段为空的所有行。谢谢!您的代码帮助我解决了核心问题