为什么来自Checkboxes的字符串值在java中增加了+1?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么来自Checkboxes的字符串值在java中增加了+1?相关的知识,希望对你有一定的参考价值。
我正在JSP / Servlet中开发一个Web应用程序,我在其中从复选框中获取值并将其放在会话中。之后,我将在数据库中逐个添加此复选框值以及更多属性。
问题是从复选框中获取值后,字符串的长度会增加,如堆栈跟踪中所示。例如,如果String值为abc,则将其长度显示为5。
如果我在这里做错了,请帮帮我。
case 1:
String[] checkbox = request.getParameterValues("c1");
if (checkbox != null)
{
session.setAttribute("title", checkbox);
}
break;
case 2:
String[] titles = (String[]) session.getAttribute("title");
for (String title : titles)
{
System.out.println(title + title.length());
}
int i = 0;
String Name = session.getAttribute("Name").toString();
String[] days = request.getParameterValues("t1");
if (titles != null && days != null)
{
for (String title : titles)
{
System.out.print(title);
System.out.print(title.length());
int day = Integer.parseInt(days[i]);
i++;
String query = "insert into rents values('" + day + "','" + Name + "','" + title + "')";
System.out.print(query);
cr.stmt.executeUpdate(query);
}
}
cr.stmt.close();
cr.con.close();
break;
This is what the error is, you can see that while printing query it is showing after the title.
答案
出于某种原因,你有'
'
和's+'
附加标题中的项目。
更好地调试代码(添加一个sysout)并检查您在以下代码段中实际获得了什么
case 1:
String[] checkbox = request.getParameterValues("c1");
if (checkbox != null)
{
System.out.println(checkbox);
session.setAttribute("title", checkbox);
}
break;
c1
是jsp上输入元素(复选框)的名称。这也应该在整个页面中是唯一的。
如果你在这里使用javascript更好用js来计算dom元素的值。
以上是关于为什么来自Checkboxes的字符串值在java中增加了+1?的主要内容,如果未能解决你的问题,请参考以下文章
Android - 来自 AlertDialog 的字符串值在访问时不断重置
通过 user32.dll 在 Listbox 中选择 CheckBoxes? (
Visual Studio安装项目中的“Checkboxes(A)”和“Checkboxes(B)”对话框之间有什么区别?